diff --git a/.changeset/c3-fix-gpg-signed-commit-hang.md b/.changeset/c3-fix-gpg-signed-commit-hang.md deleted file mode 100644 index 87a40a72625..00000000000 --- a/.changeset/c3-fix-gpg-signed-commit-hang.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Fix `git commit` hanging when `commit.gpgsign` is enabled - -If you have GPG commit signing configured with a passphrase-protected key, the initial commit created during project setup would appear to hang: the passphrase prompt couldn't get keyboard input because it had to compete with C3's own progress output for control of the terminal. The only way out was Ctrl+C, which also skipped the rest of setup, including the prompt to deploy your new project. - -`git commit` now runs the same way it would if you ran it yourself, so passphrase-protected signing keys work as expected. A failure while staging files is also now reported correctly instead of leaving the progress indicator spinning indefinitely. diff --git a/.changeset/c3-frameworks-update-14758.md b/.changeset/c3-frameworks-update-14758.md deleted file mode 100644 index 52b758c555e..00000000000 --- a/.changeset/c3-frameworks-update-14758.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ------------- | ------ | ------ | -| @tanstack/cli | 0.69.5 | 0.69.6 | diff --git a/.changeset/c3-frameworks-update-14852.md b/.changeset/c3-frameworks-update-14852.md deleted file mode 100644 index 405459d6f1e..00000000000 --- a/.changeset/c3-frameworks-update-14852.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ---------- | ------ | ------ | -| create-vue | 3.22.4 | 3.23.0 | diff --git a/.changeset/c3-frameworks-update-14853.md b/.changeset/c3-frameworks-update-14853.md deleted file mode 100644 index 44f38ba57d7..00000000000 --- a/.changeset/c3-frameworks-update-14853.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ------------- | ----- | ----- | -| create-analog | 2.6.3 | 2.6.4 | diff --git a/.changeset/c3-frameworks-update-14854.md b/.changeset/c3-frameworks-update-14854.md deleted file mode 100644 index 424abf6c68b..00000000000 --- a/.changeset/c3-frameworks-update-14854.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ----------- | ------- | ------- | -| create-vike | 0.0.664 | 0.0.668 | diff --git a/.changeset/c3-frameworks-update-14855.md b/.changeset/c3-frameworks-update-14855.md deleted file mode 100644 index 6791b695172..00000000000 --- a/.changeset/c3-frameworks-update-14855.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| --------------- | ------ | ------ | -| @angular/create | 22.0.7 | 22.0.8 | diff --git a/.changeset/c3-frameworks-update-14856.md b/.changeset/c3-frameworks-update-14856.md deleted file mode 100644 index 39d0b3f428a..00000000000 --- a/.changeset/c3-frameworks-update-14856.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ------------ | ----- | ----- | -| create-solid | 0.7.0 | 0.8.0 | diff --git a/.changeset/c3-frameworks-update-14857.md b/.changeset/c3-frameworks-update-14857.md deleted file mode 100644 index 4f18ee5e696..00000000000 --- a/.changeset/c3-frameworks-update-14857.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ------------- | ------ | ------ | -| @tanstack/cli | 0.69.6 | 0.70.1 | diff --git a/.changeset/c3-frameworks-update-14858.md b/.changeset/c3-frameworks-update-14858.md deleted file mode 100644 index 37dda9001b5..00000000000 --- a/.changeset/c3-frameworks-update-14858.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ---------- | ------ | ------ | -| sv | 0.16.3 | 0.16.5 | diff --git a/.changeset/c3-frameworks-update-14859.md b/.changeset/c3-frameworks-update-14859.md deleted file mode 100644 index d8bf22e61e7..00000000000 --- a/.changeset/c3-frameworks-update-14859.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Update dependencies of "create-cloudflare" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ------------------- | ----- | ----- | -| create-react-router | 8.2.0 | 8.3.0 | diff --git a/.changeset/c3-workflows-js-super.md b/.changeset/c3-workflows-js-super.md deleted file mode 100644 index 5c6e16575db..00000000000 --- a/.changeset/c3-workflows-js-super.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"create-cloudflare": patch ---- - -Fix the `hello-world-workflows` JavaScript template crashing at runtime - -`MyWorkflow` defined a constructor that assigned to `this` without calling `super()` first, so instantiating the Workflow threw `ReferenceError: Must call super constructor in derived class before accessing 'this'`. The constructor also took `(env)` where `WorkflowEntrypoint` is constructed with `(ctx, env)`. It was redundant in the first place — the base class already assigns `this.env` — so it has been removed, matching the TypeScript variant of the same template. diff --git a/.changeset/color-email-routing-plan.md b/.changeset/color-email-routing-plan.md deleted file mode 100644 index 9b6f1c05558..00000000000 --- a/.changeset/color-email-routing-plan.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"wrangler": patch -"@cloudflare/deploy-helpers": patch ---- - -Color Email Routing plan change markers - -Wrangler now highlights additions in green, updates in yellow, and deletions and conflicts in red so Email Routing deployment plans are easier to scan before confirmation. diff --git a/.changeset/fast-email-routing-zones.md b/.changeset/fast-email-routing-zones.md deleted file mode 100644 index 35736fe968d..00000000000 --- a/.changeset/fast-email-routing-zones.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"wrangler": patch -"@cloudflare/deploy-helpers": patch ---- - -Apply Email Routing changes across independent zones concurrently - -Wrangler now limits concurrent zone updates while preserving the Email Routing plan order within each zone. Deployments that configure addresses across multiple zones complete faster without breaking delete-before-add transitions at a zone's rule limit. diff --git a/.changeset/fix-cloudchamber-curl-header-parsing.md b/.changeset/fix-cloudchamber-curl-header-parsing.md deleted file mode 100644 index c136823687c..00000000000 --- a/.changeset/fix-cloudchamber-curl-header-parsing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"wrangler": patch ---- - -Fix `wrangler cloudchamber curl` mangling header values that contain a colon - -Header values were split on every colon and only the segment between the first and second was sent, so `--header location:https://example.com/x` arrived as `https`. Headers are now split on the first colon only. A header that is not in the documented `--header :` form previously threw an unhandled `TypeError`, and now reports a clear error. diff --git a/.changeset/fix-vite-plugin-websocket-upgrade-rejection.md b/.changeset/fix-vite-plugin-websocket-upgrade-rejection.md deleted file mode 100644 index b345d8f0f6f..00000000000 --- a/.changeset/fix-vite-plugin-websocket-upgrade-rejection.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/vite-plugin": patch ---- - -Destroy the client socket instead of crashing when a WebSocket upgrade fails - -If `dispatchFetch` rejected while a WebSocket upgrade was still in flight (for example when Miniflare is disposed during a dev server shutdown or restart), the error escaped the `async` upgrade handler as an unhandled rejection. This could terminate the dev server process and leaked the client socket. The upgrade handler now catches such failures and tears the socket down cleanly. diff --git a/.changeset/kv-namespace-create-jurisdiction.md b/.changeset/kv-namespace-create-jurisdiction.md deleted file mode 100644 index bcaaa2d4d0e..00000000000 --- a/.changeset/kv-namespace-create-jurisdiction.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"wrangler": minor ---- - -Add hidden `--jurisdiction` option to `wrangler kv namespace create` for internal testing - -This option creates a KV namespace within a specific jurisdiction (for example `us`, `eu`, or `fedramp`), backing it with jurisdiction-scoped storage. It is experimental and currently gated to allow-listed accounts, so it is hidden from `--help` until the feature is generally available. diff --git a/.changeset/miniflare-kv-getwithmetadata-falsy.md b/.changeset/miniflare-kv-getwithmetadata-falsy.md deleted file mode 100644 index 7e05b4527b4..00000000000 --- a/.changeset/miniflare-kv-getwithmetadata-falsy.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"miniflare": patch ---- - -Fix `getWithMetadata` dropping metadata for falsy KV values - -`KVNamespace.getWithMetadata` returned `null` metadata whenever the stored value was falsy — an empty string or `"0"` — because the metadata branch was guarded by a truthiness check on the value. The guard now checks for `null` explicitly, so metadata is preserved for empty-string and `"0"` values while genuinely missing keys still return `null`. diff --git a/.changeset/miniflare-v8-flags-env.md b/.changeset/miniflare-v8-flags-env.md deleted file mode 100644 index 63fc540f473..00000000000 --- a/.changeset/miniflare-v8-flags-env.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"miniflare": minor ---- - -Support passing V8 flags to `workerd` via the `MINIFLARE_WORKERD_V8_FLAGS` environment variable - -The generated `workerd` config already supports `v8Flags`, but Miniflare never populated it, so the runtime always ran with V8's default heap limit (~1.4 GB). Large dev applications (e.g. big SSR module graphs under `@cloudflare/vite-plugin`, where each server-file edit grows the runner isolate's heap) can reach that limit, at which point `workerd` aborts with `V8 fatal error; location = Reached heap limit` and every subsequent `dispatchFetch()` fails with `fetch failed` until the dev server is manually restarted. - -Setting e.g. `MINIFLARE_WORKERD_V8_FLAGS="--max-old-space-size=4096"` raises the limit and keeps long dev sessions alive. The variable follows the same space-separated format as `MINIFLARE_WORKERD_AUTOGATES`. diff --git a/.changeset/miniflare-windows-hide-workerd.md b/.changeset/miniflare-windows-hide-workerd.md deleted file mode 100644 index 3d9382ba339..00000000000 --- a/.changeset/miniflare-windows-hide-workerd.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"miniflare": patch ---- - -Hide the workerd console window on Windows when the parent process has no console. Spawning workerd without `windowsHide: true` caused Windows Terminal to open a visible, focus-stealing window for background or detached parents (for example Astro's `astro dev --background`). diff --git a/.changeset/quiet-taxis-listen.md b/.changeset/quiet-taxis-listen.md deleted file mode 100644 index c8841865498..00000000000 --- a/.changeset/quiet-taxis-listen.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/vitest-pool-workers": minor ---- - -Add a `verbose` option to `cloudflareTest()` and `cloudflarePool()` configuration - -Set `verbose: false` to suppress verbose workerd runtime logs, such as caught Durable Object RPC errors. The option defaults to `true` to preserve existing output. diff --git a/.changeset/quiet-workflows-rest.md b/.changeset/quiet-workflows-rest.md deleted file mode 100644 index 59f7b3ada56..00000000000 --- a/.changeset/quiet-workflows-rest.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/workflows-shared": patch ---- - -Fix local Workflows retaining abort listeners after waits complete - -Workflow sleeps, retry delays, and event waits now share a typed abort-aware race that removes its listener when either side settles. This prevents long-running local Workflow instances from retaining a listener and its captured promise state for every completed wait until the instance is paused or evicted. diff --git a/.changeset/r2-local-s3-endpoint.md b/.changeset/r2-local-s3-endpoint.md deleted file mode 100644 index 2ae062038ec..00000000000 --- a/.changeset/r2-local-s3-endpoint.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"miniflare": minor ---- - -Add a local S3-compatible API for R2 buckets at `/cdn-cgi/local/r2/s3/`, where `` is the ID the bucket is configured with in the `r2Buckets` option - -Buckets configured with `s3Credentials: { accessKeyId, secretAccessKey }` in `r2Buckets` are served over an S3-compatible HTTP API, authenticated with AWS Signature Version 4 (both `Authorization` header and presigned URL query authentication). Supported operations: GetObject, HeadObject, PutObject, CopyObject, DeleteObject, DeleteObjects, ListObjects, ListObjectsV2, HeadBucket, ListBuckets, CreateMultipartUpload, UploadPart, UploadPartCopy, CompleteMultipartUpload, and AbortMultipartUpload. Status codes, error responses, and unsupported-header screening mirror R2's S3 endpoint, including its static responses for bucket-configuration reads and its named errors for unimplemented operations. diff --git a/.changeset/r2-local-s3-wrangler.md b/.changeset/r2-local-s3-wrangler.md deleted file mode 100644 index 6986a832447..00000000000 --- a/.changeset/r2-local-s3-wrangler.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -"wrangler": minor ---- - -Add experimental `local_dev.experimental_s3_credentials` to `r2_buckets` config - -When set, the R2 bucket is served over a local S3-compatible API at `/cdn-cgi/local/r2/s3/` during local development, authenticated with the configured AWS SigV4 credentials. `` is the bucket's `bucket_name`, or the binding name if `bucket_name` is not set: - -```jsonc -{ - "r2_buckets": [ - { - "binding": "BUCKET", - "bucket_name": "my-bucket", - "local_dev": { - "experimental_s3_credentials": { - "accessKeyId": "local-access-key-id", - "secretAccessKey": "local-secret-access-key", - }, - }, - }, - ], -} -``` diff --git a/.changeset/remote-bindings-auth-context.md b/.changeset/remote-bindings-auth-context.md deleted file mode 100644 index a35553b8928..00000000000 --- a/.changeset/remote-bindings-auth-context.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"wrangler": patch ---- - -Handle and explain authentication failures from remote bindings during local development - -Wrangler now recognizes authentication failures from remote preview sessions and reports that bindings which need to run remotely require Cloudflare authentication even when the rest of the Worker is developed locally. diff --git a/.changeset/retry-after-rate-limit.md b/.changeset/retry-after-rate-limit.md deleted file mode 100644 index c71b0f500bc..00000000000 --- a/.changeset/retry-after-rate-limit.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -"@cloudflare/workers-utils": minor -"wrangler": minor ---- - -Respect and surface the `Retry-After` header on Cloudflare API responses - -Previously, if a Wrangler command (e.g. `wrangler versions upload`, `wrangler deploy`) hit the Cloudflare API's rate limit, the resulting error gave no indication of how long to wait before trying again, and 429 responses weren't retried at all (only `5xx` errors were, with a fixed linear backoff). - -Now: - -- `429 Too Many Requests` responses are automatically retried, alongside the existing `5xx` retry behaviour. -- If a retried response includes a `Retry-After` header, Wrangler waits for that duration instead of the default backoff, and logs a message indicating how long it's waiting. To avoid blocking for an excessive amount of time, waits longer than 60 seconds fail fast instead — the surfaced `Retry-After` value lets the caller schedule its own retry. -- If a retryable error is ultimately surfaced to the user (e.g. because retries were exhausted), the error message includes a note with the `Retry-After` duration, and the `command-failed` entry written to the Wrangler output file (`WRANGLER_OUTPUT_FILE_PATH`/`WRANGLER_OUTPUT_FILE_DIRECTORY`) gains a `retry_after_ms` field. This lets scripts and CI/CD pipelines calling Wrangler repeatedly (for example, `wrangler versions upload` on every commit) read the wait duration directly instead of regex-parsing stderr. - -`APIError.isRetryable()` is unchanged (still `5xx` only); `retryOnAPIFailure()` separately retries 429s. `retryAfterMs`, when present, is honoured for any retried error, not just 429s. - -`retryAfterMs` is also now populated on `APIError`s raised from direct R2 object requests, the Browser Rendering API, and errors surfaced from commands using the official `cloudflare` SDK client. diff --git a/.changeset/spicy-mangos-cleanup.md b/.changeset/spicy-mangos-cleanup.md deleted file mode 100644 index cb1afa23d1d..00000000000 --- a/.changeset/spicy-mangos-cleanup.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"wrangler": patch ---- - -Speed up old debug log cleanup by reading each log file's date from its filename instead of `stat`-ing every file - -Wrangler periodically deletes debug log files older than 30 days from its logs directory. Previously it made a filesystem `stat` call for each file to read its modification time; it now derives the age from the timestamp already encoded in the log filename, avoiding that extra work. diff --git a/.changeset/vite-plugin-bundled-dev-html.md b/.changeset/vite-plugin-bundled-dev-html.md deleted file mode 100644 index 8677598d131..00000000000 --- a/.changeset/vite-plugin-bundled-dev-html.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/vite-plugin": minor ---- - -Serve the bundled client HTML in dev when Vite's `experimental.bundledDev` is enabled - -Note that this feature is experimental and subject to change. diff --git a/.changeset/vite-plugin-bundled-dev-miniflare-dispose.md b/.changeset/vite-plugin-bundled-dev-miniflare-dispose.md deleted file mode 100644 index 264e659b462..00000000000 --- a/.changeset/vite-plugin-bundled-dev-miniflare-dispose.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@cloudflare/vite-plugin": patch ---- - -Fix compatibility with Vite's `experimental.bundledDev` option. Keep Miniflare, containers, and tunnels alive when a build runs in dev. - -The plugin used the `buildEnd` hook as its signal that the dev server was closing, and tore down its dev resources there. Vite's `experimental.bundledDev` runs a build pass _during_ `serve`, which fires `buildEnd` while the dev server is still live — so Miniflare was disposed (the next request failed with `Expected \`miniflare\` to be defined`), locally-built container images were removed, and any active tunnel was closed, all mid-serve. - -During `serve`, these resources are now torn down from a patched `server.close`. We will replace server patching with first-class APIs when they are [added to Vite](https://github.com/vitejs/vite/issues/22913). diff --git a/.changeset/vite-plugin-invoke-retry.md b/.changeset/vite-plugin-invoke-retry.md deleted file mode 100644 index d91bbbb7ab4..00000000000 --- a/.changeset/vite-plugin-invoke-retry.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/vite-plugin": patch ---- - -Retry transient module-transport failures in the runner worker - -Each `fetchModule` invoke was a single fetch to the dev server with no retry. If that one fetch failed transiently (e.g. `Network connection lost` when workerd reuses a loopback connection that Node just closed), Vite's module runner cached the rejection and every request importing the affected module failed for the rest of the dev session. The invoke is an idempotent request for module code, so retry it up to three times before giving up. diff --git a/.changeset/vitest-pool-ignore-tls-disconnect.md b/.changeset/vitest-pool-ignore-tls-disconnect.md deleted file mode 100644 index d57bdf79c54..00000000000 --- a/.changeset/vitest-pool-ignore-tls-disconnect.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/vitest-pool-workers": patch ---- - -Ignore workerd's `disconnected: peer disconnected without gracefully ending TLS session` exception logs - -When tests make real `fetch()` calls to external TLS endpoints, servers and load balancers routinely close idle keepalive connections without sending a TLS `close_notify`. No request fails — the connection is idle — but workerd logs a `kj/compat/tls.c++` exception with a full stack trace each time, flooding otherwise green test runs. This is the TLS sibling of the `disconnected: ...` messages already in the ignore list, so filter it the same way. diff --git a/.changeset/vpc-networks-connect-tunnel.md b/.changeset/vpc-networks-connect-tunnel.md deleted file mode 100644 index fcb39cbba28..00000000000 --- a/.changeset/vpc-networks-connect-tunnel.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"miniflare": minor -"wrangler": minor ---- - -Support `connect()` on remote VPC Network and VPC Service bindings in local development - -Remote VPC Network and VPC Service bindings previously only supported HTTP and JSRPC, so calling `binding.connect(address)` against a private TCP service (for example a database) failed in local dev with `Incoming CONNECT on a worker not supported`. Raw TCP connections through remote VPC Network and VPC Service bindings now work in local development. - -This feature is experimental. Existing HTTP and JSRPC usage of remote VPC Network and VPC Service bindings is unaffected, and no new configuration is required. diff --git a/packages/autoconfig/CHANGELOG.md b/packages/autoconfig/CHANGELOG.md index d255c9db85c..def9f1e5014 100644 --- a/packages/autoconfig/CHANGELOG.md +++ b/packages/autoconfig/CHANGELOG.md @@ -1,5 +1,13 @@ # @cloudflare/autoconfig +## 0.2.1 + +### Patch Changes + +- Updated dependencies [[`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb)]: + - @cloudflare/workers-utils@0.29.0 + - @cloudflare/cli-shared-helpers@0.1.17 + ## 0.2.0 ### Minor Changes diff --git a/packages/autoconfig/package.json b/packages/autoconfig/package.json index 0785de05e0b..77dd0c20582 100644 --- a/packages/autoconfig/package.json +++ b/packages/autoconfig/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/autoconfig", - "version": "0.2.0", + "version": "0.2.1", "description": "Framework autoconfig detection and configuration for Cloudflare Workers", "license": "MIT OR Apache-2.0", "repository": { diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 045cc21d5b0..e8c18746b8b 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/cli +## 0.1.17 + +### Patch Changes + +- Updated dependencies [[`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb)]: + - @cloudflare/workers-utils@0.29.0 + ## 0.1.16 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 6723de8c8cd..8cd3767b489 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/cli-shared-helpers", - "version": "0.1.16", + "version": "0.1.17", "description": "Internal shared CLI helpers for workers-sdk. Not intended for external use — APIs may change without notice.", "keywords": [ "cli", diff --git a/packages/create-cloudflare/CHANGELOG.md b/packages/create-cloudflare/CHANGELOG.md index 799a2b9dc67..934f9f8994d 100644 --- a/packages/create-cloudflare/CHANGELOG.md +++ b/packages/create-cloudflare/CHANGELOG.md @@ -1,5 +1,91 @@ # create-cloudflare +## 2.70.15 + +### Patch Changes + +- [#14767](https://github.com/cloudflare/workers-sdk/pull/14767) [`3a141ed`](https://github.com/cloudflare/workers-sdk/commit/3a141ed118b7ed58301c9be57517167ddff10d50) Thanks [@jasoncabot](https://github.com/jasoncabot)! - Fix `git commit` hanging when `commit.gpgsign` is enabled + + If you have GPG commit signing configured with a passphrase-protected key, the initial commit created during project setup would appear to hang: the passphrase prompt couldn't get keyboard input because it had to compete with C3's own progress output for control of the terminal. The only way out was Ctrl+C, which also skipped the rest of setup, including the prompt to deploy your new project. + + `git commit` now runs the same way it would if you ran it yourself, so passphrase-protected signing keys work as expected. A failure while staging files is also now reported correctly instead of leaving the progress indicator spinning indefinitely. + +- [#14758](https://github.com/cloudflare/workers-sdk/pull/14758) [`b8b60f2`](https://github.com/cloudflare/workers-sdk/commit/b8b60f210f84ff06ede3057550eac53dace89893) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ------------- | ------ | ------ | + | @tanstack/cli | 0.69.5 | 0.69.6 | + +- [#14852](https://github.com/cloudflare/workers-sdk/pull/14852) [`9caa6ef`](https://github.com/cloudflare/workers-sdk/commit/9caa6ef2acf9d61a26a55dadda1fd1395e3ada9f) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ---------- | ------ | ------ | + | create-vue | 3.22.4 | 3.23.0 | + +- [#14853](https://github.com/cloudflare/workers-sdk/pull/14853) [`0debc23`](https://github.com/cloudflare/workers-sdk/commit/0debc23952a812080159e61d661a704c475f5dd4) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ------------- | ----- | ----- | + | create-analog | 2.6.3 | 2.6.4 | + +- [#14854](https://github.com/cloudflare/workers-sdk/pull/14854) [`afaecee`](https://github.com/cloudflare/workers-sdk/commit/afaecee40d557f515c5bcb3256a8ca13327c6557) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ----------- | ------- | ------- | + | create-vike | 0.0.664 | 0.0.668 | + +- [#14855](https://github.com/cloudflare/workers-sdk/pull/14855) [`e015a43`](https://github.com/cloudflare/workers-sdk/commit/e015a433b427aba6882d341cf333ef9102f3262d) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | --------------- | ------ | ------ | + | @angular/create | 22.0.7 | 22.0.8 | + +- [#14856](https://github.com/cloudflare/workers-sdk/pull/14856) [`7fd99b8`](https://github.com/cloudflare/workers-sdk/commit/7fd99b877187d26529ed93689a3c87a5274de697) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ------------ | ----- | ----- | + | create-solid | 0.7.0 | 0.8.0 | + +- [#14857](https://github.com/cloudflare/workers-sdk/pull/14857) [`a460a2a`](https://github.com/cloudflare/workers-sdk/commit/a460a2a7f1c9034cdf83ad628661509c54e79670) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ------------- | ------ | ------ | + | @tanstack/cli | 0.69.6 | 0.70.1 | + +- [#14858](https://github.com/cloudflare/workers-sdk/pull/14858) [`dfe39fc`](https://github.com/cloudflare/workers-sdk/commit/dfe39fc64dc8c7f568b820a9bf73deadc8aad291) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ---------- | ------ | ------ | + | sv | 0.16.3 | 0.16.5 | + +- [#14859](https://github.com/cloudflare/workers-sdk/pull/14859) [`d44bd80`](https://github.com/cloudflare/workers-sdk/commit/d44bd80ea275506dd3b170fb85406d7955807f53) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ------------------- | ----- | ----- | + | create-react-router | 8.2.0 | 8.3.0 | + +- [#14888](https://github.com/cloudflare/workers-sdk/pull/14888) [`29ea4d2`](https://github.com/cloudflare/workers-sdk/commit/29ea4d21cdeffa3a4f5e0b4ca57c5da27cefcd27) Thanks [@chinesepowered](https://github.com/chinesepowered)! - Fix the `hello-world-workflows` JavaScript template crashing at runtime + + `MyWorkflow` defined a constructor that assigned to `this` without calling `super()` first, so instantiating the Workflow threw `ReferenceError: Must call super constructor in derived class before accessing 'this'`. The constructor also took `(env)` where `WorkflowEntrypoint` is constructed with `(ctx, env)`. It was redundant in the first place — the base class already assigns `this.env` — so it has been removed, matching the TypeScript variant of the same template. + ## 2.70.14 ### Patch Changes diff --git a/packages/create-cloudflare/package.json b/packages/create-cloudflare/package.json index 095eb062f8a..e0c4d19a4ed 100644 --- a/packages/create-cloudflare/package.json +++ b/packages/create-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "create-cloudflare", - "version": "2.70.14", + "version": "2.70.15", "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 44fd11bd542..16dab1f8d90 100644 --- a/packages/deploy-helpers/CHANGELOG.md +++ b/packages/deploy-helpers/CHANGELOG.md @@ -1,5 +1,22 @@ # @cloudflare/deploy-helpers +## 0.6.2 + +### Patch Changes + +- [#14833](https://github.com/cloudflare/workers-sdk/pull/14833) [`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7) Thanks [@DiogoSantoss](https://github.com/DiogoSantoss)! - Color Email Routing plan change markers + + Wrangler now highlights additions in green, updates in yellow, and deletions and conflicts in red so Email Routing deployment plans are easier to scan before confirmation. + +- [#14833](https://github.com/cloudflare/workers-sdk/pull/14833) [`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7) Thanks [@DiogoSantoss](https://github.com/DiogoSantoss)! - Apply Email Routing changes across independent zones concurrently + + Wrangler now limits concurrent zone updates while preserving the Email Routing plan order within each zone. Deployments that configure addresses across multiple zones complete faster without breaking delete-before-add transitions at a zone's rule limit. + +- Updated dependencies [[`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1), [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a), [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb), [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1)]: + - miniflare@4.20260722.1 + - @cloudflare/workers-utils@0.29.0 + - @cloudflare/cli-shared-helpers@0.1.17 + ## 0.6.1 ### Patch Changes diff --git a/packages/deploy-helpers/package.json b/packages/deploy-helpers/package.json index cd98f305f4c..f9c6ce68beb 100644 --- a/packages/deploy-helpers/package.json +++ b/packages/deploy-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/deploy-helpers", - "version": "0.6.1", + "version": "0.6.2", "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/miniflare/CHANGELOG.md b/packages/miniflare/CHANGELOG.md index 0c990d7eebf..5c509b3ae4d 100644 --- a/packages/miniflare/CHANGELOG.md +++ b/packages/miniflare/CHANGELOG.md @@ -1,5 +1,33 @@ # miniflare +## 4.20260722.1 + +### Minor Changes + +- [#14702](https://github.com/cloudflare/workers-sdk/pull/14702) [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a) Thanks [@Sipixer](https://github.com/Sipixer)! - Support passing V8 flags to `workerd` via the `MINIFLARE_WORKERD_V8_FLAGS` environment variable + + The generated `workerd` config already supports `v8Flags`, but Miniflare never populated it, so the runtime always ran with V8's default heap limit (~1.4 GB). Large dev applications (e.g. big SSR module graphs under `@cloudflare/vite-plugin`, where each server-file edit grows the runner isolate's heap) can reach that limit, at which point `workerd` aborts with `V8 fatal error; location = Reached heap limit` and every subsequent `dispatchFetch()` fails with `fetch failed` until the dev server is manually restarted. + + Setting e.g. `MINIFLARE_WORKERD_V8_FLAGS="--max-old-space-size=4096"` raises the limit and keeps long dev sessions alive. The variable follows the same space-separated format as `MINIFLARE_WORKERD_AUTOGATES`. + +- [#14280](https://github.com/cloudflare/workers-sdk/pull/14280) [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468) Thanks [@tahmid-23](https://github.com/tahmid-23)! - Add a local S3-compatible API for R2 buckets at `/cdn-cgi/local/r2/s3/`, where `` is the ID the bucket is configured with in the `r2Buckets` option + + Buckets configured with `s3Credentials: { accessKeyId, secretAccessKey }` in `r2Buckets` are served over an S3-compatible HTTP API, authenticated with AWS Signature Version 4 (both `Authorization` header and presigned URL query authentication). Supported operations: GetObject, HeadObject, PutObject, CopyObject, DeleteObject, DeleteObjects, ListObjects, ListObjectsV2, HeadBucket, ListBuckets, CreateMultipartUpload, UploadPart, UploadPartCopy, CompleteMultipartUpload, and AbortMultipartUpload. Status codes, error responses, and unsupported-header screening mirror R2's S3 endpoint, including its static responses for bucket-configuration reads and its named errors for unimplemented operations. + +- [#14712](https://github.com/cloudflare/workers-sdk/pull/14712) [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1) Thanks [@mack-erel](https://github.com/mack-erel)! - Support `connect()` on remote VPC Network and VPC Service bindings in local development + + Remote VPC Network and VPC Service bindings previously only supported HTTP and JSRPC, so calling `binding.connect(address)` against a private TCP service (for example a database) failed in local dev with `Incoming CONNECT on a worker not supported`. Raw TCP connections through remote VPC Network and VPC Service bindings now work in local development. + + This feature is experimental. Existing HTTP and JSRPC usage of remote VPC Network and VPC Service bindings is unaffected, and no new configuration is required. + +### Patch Changes + +- [#14784](https://github.com/cloudflare/workers-sdk/pull/14784) [`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1) Thanks [@ATKasem](https://github.com/ATKasem)! - Fix `getWithMetadata` dropping metadata for falsy KV values + + `KVNamespace.getWithMetadata` returned `null` metadata whenever the stored value was falsy — an empty string or `"0"` — because the metadata branch was guarded by a truthiness check on the value. The guard now checks for `null` explicitly, so metadata is preserved for empty-string and `"0"` values while genuinely missing keys still return `null`. + +- [#14864](https://github.com/cloudflare/workers-sdk/pull/14864) [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e) Thanks [@Hashim1999164](https://github.com/Hashim1999164)! - Hide the workerd console window on Windows when the parent process has no console. Spawning workerd without `windowsHide: true` caused Windows Terminal to open a visible, focus-stealing window for background or detached parents (for example Astro's `astro dev --background`). + ## 4.20260722.0 ### Minor Changes diff --git a/packages/miniflare/package.json b/packages/miniflare/package.json index 164ed0fb261..93b5a095979 100644 --- a/packages/miniflare/package.json +++ b/packages/miniflare/package.json @@ -1,6 +1,6 @@ { "name": "miniflare", - "version": "4.20260722.0", + "version": "4.20260722.1", "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 815e280fc78..1895b9022e4 100644 --- a/packages/pages-shared/CHANGELOG.md +++ b/packages/pages-shared/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/pages-shared +## 0.13.161 + +### Patch Changes + +- Updated dependencies [[`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1), [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a), [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1)]: + - miniflare@4.20260722.1 + ## 0.13.160 ### Patch Changes diff --git a/packages/pages-shared/package.json b/packages/pages-shared/package.json index 7e8ef10791e..6be52b45e4f 100644 --- a/packages/pages-shared/package.json +++ b/packages/pages-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/pages-shared", - "version": "0.13.160", + "version": "0.13.161", "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 67db83bba9e..85c565371c3 100644 --- a/packages/remote-bindings/CHANGELOG.md +++ b/packages/remote-bindings/CHANGELOG.md @@ -1,5 +1,16 @@ # @cloudflare/remote-bindings +## 0.0.3 + +### Patch Changes + +- Updated dependencies [[`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7), [`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7), [`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1), [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a), [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb), [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1)]: + - @cloudflare/deploy-helpers@0.6.2 + - miniflare@4.20260722.1 + - @cloudflare/workers-utils@0.29.0 + - @cloudflare/cli-shared-helpers@0.1.17 + - @cloudflare/workers-auth@0.5.3 + ## 0.0.2 ### Patch Changes diff --git a/packages/remote-bindings/package.json b/packages/remote-bindings/package.json index 33537d7692d..89d9695d7ae 100644 --- a/packages/remote-bindings/package.json +++ b/packages/remote-bindings/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/remote-bindings", - "version": "0.0.2", + "version": "0.0.3", "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 f8035f229b3..c7e97e27a75 100644 --- a/packages/runtime-types/CHANGELOG.md +++ b/packages/runtime-types/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/runtime-types +## 0.0.6 + +### Patch Changes + +- Updated dependencies [[`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1), [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a), [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1)]: + - miniflare@4.20260722.1 + ## 0.0.5 ### Patch Changes diff --git a/packages/runtime-types/package.json b/packages/runtime-types/package.json index 4151f97b821..bb9c10f5710 100644 --- a/packages/runtime-types/package.json +++ b/packages/runtime-types/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/runtime-types", - "version": "0.0.5", + "version": "0.0.6", "private": true, "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 655f23b68d9..bf27e231e0f 100644 --- a/packages/vite-plugin-cloudflare/CHANGELOG.md +++ b/packages/vite-plugin-cloudflare/CHANGELOG.md @@ -1,5 +1,33 @@ # @cloudflare/vite-plugin +## 1.48.0 + +### Minor Changes + +- [#14883](https://github.com/cloudflare/workers-sdk/pull/14883) [`76e6014`](https://github.com/cloudflare/workers-sdk/commit/76e6014ccc156d19ddc105540a347ced99d676bc) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Serve the bundled client HTML in dev when Vite's `experimental.bundledDev` is enabled + + Note that this feature is experimental and subject to change. + +### Patch Changes + +- [#14862](https://github.com/cloudflare/workers-sdk/pull/14862) [`c232d05`](https://github.com/cloudflare/workers-sdk/commit/c232d059f2787cb2f36149e331241fde488e4704) Thanks [@petebacondarwin](https://github.com/petebacondarwin)! - Destroy the client socket instead of crashing when a WebSocket upgrade fails + + If `dispatchFetch` rejected while a WebSocket upgrade was still in flight (for example when Miniflare is disposed during a dev server shutdown or restart), the error escaped the `async` upgrade handler as an unhandled rejection. This could terminate the dev server process and leaked the client socket. The upgrade handler now catches such failures and tears the socket down cleanly. + +- [#14837](https://github.com/cloudflare/workers-sdk/pull/14837) [`de6a951`](https://github.com/cloudflare/workers-sdk/commit/de6a951826cd43df9cea21d490fb365ee807f290) Thanks [@1rgs](https://github.com/1rgs)! - Fix compatibility with Vite's `experimental.bundledDev` option. Keep Miniflare, containers, and tunnels alive when a build runs in dev. + + The plugin used the `buildEnd` hook as its signal that the dev server was closing, and tore down its dev resources there. Vite's `experimental.bundledDev` runs a build pass _during_ `serve`, which fires `buildEnd` while the dev server is still live — so Miniflare was disposed (the next request failed with `Expected \`miniflare\` to be defined`), locally-built container images were removed, and any active tunnel was closed, all mid-serve. + + During `serve`, these resources are now torn down from a patched `server.close`. We will replace server patching with first-class APIs when they are [added to Vite](https://github.com/vitejs/vite/issues/22913). + +- [#14851](https://github.com/cloudflare/workers-sdk/pull/14851) [`fb89b72`](https://github.com/cloudflare/workers-sdk/commit/fb89b725ee796af63f60e5bd7f0216f7f44c7e61) Thanks [@exKAZUu](https://github.com/exKAZUu)! - Retry transient module-transport failures in the runner worker + + Each `fetchModule` invoke was a single fetch to the dev server with no retry. If that one fetch failed transiently (e.g. `Network connection lost` when workerd reuses a loopback connection that Node just closed), Vite's module runner cached the rejection and every request importing the affected module failed for the rest of the dev session. The invoke is an idempotent request for module code, so retry it up to three times before giving up. + +- Updated dependencies [[`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7), [`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7), [`09b8a44`](https://github.com/cloudflare/workers-sdk/commit/09b8a44e736f28798c733e46ec11eced25fdc897), [`4dfb96e`](https://github.com/cloudflare/workers-sdk/commit/4dfb96ed31c30d98ccf670f9e9453a86861c0c5f), [`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1), [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a), [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`e8b3a9d`](https://github.com/cloudflare/workers-sdk/commit/e8b3a9d8bf5f63f7e318de220d91625f96cfb85a), [`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb), [`b737676`](https://github.com/cloudflare/workers-sdk/commit/b737676db01a62e115b7fc56b5af36f5daaf5f6e), [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1)]: + - wrangler@4.115.0 + - miniflare@4.20260722.1 + ## 1.47.0 ### Minor Changes diff --git a/packages/vite-plugin-cloudflare/package.json b/packages/vite-plugin-cloudflare/package.json index ae2bbe325b0..c34d576c261 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.47.0", + "version": "1.48.0", "description": "Cloudflare plugin for Vite", "keywords": [ "cloudflare", diff --git a/packages/vitest-pool-workers/CHANGELOG.md b/packages/vitest-pool-workers/CHANGELOG.md index c9b0da10a63..c3d8a85e8b0 100644 --- a/packages/vitest-pool-workers/CHANGELOG.md +++ b/packages/vitest-pool-workers/CHANGELOG.md @@ -1,5 +1,23 @@ # @cloudflare/vitest-pool-workers +## 0.19.0 + +### Minor Changes + +- [#14879](https://github.com/cloudflare/workers-sdk/pull/14879) [`e6480e3`](https://github.com/cloudflare/workers-sdk/commit/e6480e3c26e849034e9e511a2fd1216257975656) Thanks [@dmmulroy](https://github.com/dmmulroy)! - Add a `verbose` option to `cloudflareTest()` and `cloudflarePool()` configuration + + Set `verbose: false` to suppress verbose workerd runtime logs, such as caught Durable Object RPC errors. The option defaults to `true` to preserve existing output. + +### Patch Changes + +- [#14821](https://github.com/cloudflare/workers-sdk/pull/14821) [`edc203e`](https://github.com/cloudflare/workers-sdk/commit/edc203e42a10a52f8d2af305fecd2fed4807274e) Thanks [@mishushakov](https://github.com/mishushakov)! - Ignore workerd's `disconnected: peer disconnected without gracefully ending TLS session` exception logs + + When tests make real `fetch()` calls to external TLS endpoints, servers and load balancers routinely close idle keepalive connections without sending a TLS `close_notify`. No request fails — the connection is idle — but workerd logs a `kj/compat/tls.c++` exception with a full stack trace each time, flooding otherwise green test runs. This is the TLS sibling of the `disconnected: ...` messages already in the ignore list, so filter it the same way. + +- Updated dependencies [[`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7), [`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7), [`09b8a44`](https://github.com/cloudflare/workers-sdk/commit/09b8a44e736f28798c733e46ec11eced25fdc897), [`4dfb96e`](https://github.com/cloudflare/workers-sdk/commit/4dfb96ed31c30d98ccf670f9e9453a86861c0c5f), [`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1), [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a), [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`e8b3a9d`](https://github.com/cloudflare/workers-sdk/commit/e8b3a9d8bf5f63f7e318de220d91625f96cfb85a), [`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb), [`b737676`](https://github.com/cloudflare/workers-sdk/commit/b737676db01a62e115b7fc56b5af36f5daaf5f6e), [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1)]: + - wrangler@4.115.0 + - miniflare@4.20260722.1 + ## 0.18.8 ### Patch Changes diff --git a/packages/vitest-pool-workers/package.json b/packages/vitest-pool-workers/package.json index 9136e868bfd..39ced4dd1c3 100644 --- a/packages/vitest-pool-workers/package.json +++ b/packages/vitest-pool-workers/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/vitest-pool-workers", - "version": "0.18.8", + "version": "0.19.0", "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 67fac49be62..ca79116e954 100644 --- a/packages/workers-auth/CHANGELOG.md +++ b/packages/workers-auth/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/workers-auth +## 0.5.3 + +### Patch Changes + +- Updated dependencies [[`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb)]: + - @cloudflare/workers-utils@0.29.0 + ## 0.5.2 ### Patch Changes diff --git a/packages/workers-auth/package.json b/packages/workers-auth/package.json index a1835c81c85..0c57b1bdf3e 100644 --- a/packages/workers-auth/package.json +++ b/packages/workers-auth/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/workers-auth", - "version": "0.5.2", + "version": "0.5.3", "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 11bf62f29e7..cad7e6a5b1c 100644 --- a/packages/workers-utils/CHANGELOG.md +++ b/packages/workers-utils/CHANGELOG.md @@ -1,5 +1,23 @@ # @cloudflare/workers-utils +## 0.29.0 + +### Minor Changes + +- [#14877](https://github.com/cloudflare/workers-sdk/pull/14877) [`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb) Thanks [@jasoncabot](https://github.com/jasoncabot)! - Respect and surface the `Retry-After` header on Cloudflare API responses + + Previously, if a Wrangler command (e.g. `wrangler versions upload`, `wrangler deploy`) hit the Cloudflare API's rate limit, the resulting error gave no indication of how long to wait before trying again, and 429 responses weren't retried at all (only `5xx` errors were, with a fixed linear backoff). + + Now: + + - `429 Too Many Requests` responses are automatically retried, alongside the existing `5xx` retry behaviour. + - If a retried response includes a `Retry-After` header, Wrangler waits for that duration instead of the default backoff, and logs a message indicating how long it's waiting. To avoid blocking for an excessive amount of time, waits longer than 60 seconds fail fast instead — the surfaced `Retry-After` value lets the caller schedule its own retry. + - If a retryable error is ultimately surfaced to the user (e.g. because retries were exhausted), the error message includes a note with the `Retry-After` duration, and the `command-failed` entry written to the Wrangler output file (`WRANGLER_OUTPUT_FILE_PATH`/`WRANGLER_OUTPUT_FILE_DIRECTORY`) gains a `retry_after_ms` field. This lets scripts and CI/CD pipelines calling Wrangler repeatedly (for example, `wrangler versions upload` on every commit) read the wait duration directly instead of regex-parsing stderr. + + `APIError.isRetryable()` is unchanged (still `5xx` only); `retryOnAPIFailure()` separately retries 429s. `retryAfterMs`, when present, is honoured for any retried error, not just 429s. + + `retryAfterMs` is also now populated on `APIError`s raised from direct R2 object requests, the Browser Rendering API, and errors surfaced from commands using the official `cloudflare` SDK client. + ## 0.28.0 ### Minor Changes diff --git a/packages/workers-utils/package.json b/packages/workers-utils/package.json index be2dcf4ba55..9244032a15e 100644 --- a/packages/workers-utils/package.json +++ b/packages/workers-utils/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/workers-utils", - "version": "0.28.0", + "version": "0.29.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/workflows-shared/CHANGELOG.md b/packages/workflows-shared/CHANGELOG.md index 5678562c396..e1bb4dfd547 100644 --- a/packages/workflows-shared/CHANGELOG.md +++ b/packages/workflows-shared/CHANGELOG.md @@ -1,5 +1,13 @@ # @cloudflare/workflows-shared +## 0.12.2 + +### Patch Changes + +- [#14840](https://github.com/cloudflare/workers-sdk/pull/14840) [`03a4330`](https://github.com/cloudflare/workers-sdk/commit/03a4330eb11865ef20a7c993a6ebe1f1b10838ad) Thanks [@Kkartik14](https://github.com/Kkartik14)! - Fix local Workflows retaining abort listeners after waits complete + + Workflow sleeps, retry delays, and event waits now share a typed abort-aware race that removes its listener when either side settles. This prevents long-running local Workflow instances from retaining a listener and its captured promise state for every completed wait until the instance is paused or evicted. + ## 0.12.1 ### Patch Changes diff --git a/packages/workflows-shared/package.json b/packages/workflows-shared/package.json index 691fd5c1c98..1bab034d46e 100644 --- a/packages/workflows-shared/package.json +++ b/packages/workflows-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/workflows-shared", - "version": "0.12.1", + "version": "0.12.2", "private": true, "description": "Package that is used at Cloudflare to power some internal features of Cloudflare Workflows.", "keywords": [ diff --git a/packages/wrangler/CHANGELOG.md b/packages/wrangler/CHANGELOG.md index bb2eec35978..aa784690100 100644 --- a/packages/wrangler/CHANGELOG.md +++ b/packages/wrangler/CHANGELOG.md @@ -1,5 +1,79 @@ # wrangler +## 4.115.0 + +### Minor Changes + +- [#14807](https://github.com/cloudflare/workers-sdk/pull/14807) [`4dfb96e`](https://github.com/cloudflare/workers-sdk/commit/4dfb96ed31c30d98ccf670f9e9453a86861c0c5f) Thanks [@oOPa](https://github.com/oOPa)! - Add hidden `--jurisdiction` option to `wrangler kv namespace create` for internal testing + + This option creates a KV namespace within a specific jurisdiction (for example `us`, `eu`, or `fedramp`), backing it with jurisdiction-scoped storage. It is experimental and currently gated to allow-listed accounts, so it is hidden from `--help` until the feature is generally available. + +- [#14280](https://github.com/cloudflare/workers-sdk/pull/14280) [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468) Thanks [@tahmid-23](https://github.com/tahmid-23)! - Add experimental `local_dev.experimental_s3_credentials` to `r2_buckets` config + + When set, the R2 bucket is served over a local S3-compatible API at `/cdn-cgi/local/r2/s3/` during local development, authenticated with the configured AWS SigV4 credentials. `` is the bucket's `bucket_name`, or the binding name if `bucket_name` is not set: + + ```jsonc + { + "r2_buckets": [ + { + "binding": "BUCKET", + "bucket_name": "my-bucket", + "local_dev": { + "experimental_s3_credentials": { + "accessKeyId": "local-access-key-id", + "secretAccessKey": "local-secret-access-key" + } + } + } + ] + } + ``` + +- [#14877](https://github.com/cloudflare/workers-sdk/pull/14877) [`552bcfc`](https://github.com/cloudflare/workers-sdk/commit/552bcfc8d44f8625b09dfd5d821c132b626cb7bb) Thanks [@jasoncabot](https://github.com/jasoncabot)! - Respect and surface the `Retry-After` header on Cloudflare API responses + + Previously, if a Wrangler command (e.g. `wrangler versions upload`, `wrangler deploy`) hit the Cloudflare API's rate limit, the resulting error gave no indication of how long to wait before trying again, and 429 responses weren't retried at all (only `5xx` errors were, with a fixed linear backoff). + + Now: + + - `429 Too Many Requests` responses are automatically retried, alongside the existing `5xx` retry behaviour. + - If a retried response includes a `Retry-After` header, Wrangler waits for that duration instead of the default backoff, and logs a message indicating how long it's waiting. To avoid blocking for an excessive amount of time, waits longer than 60 seconds fail fast instead — the surfaced `Retry-After` value lets the caller schedule its own retry. + - If a retryable error is ultimately surfaced to the user (e.g. because retries were exhausted), the error message includes a note with the `Retry-After` duration, and the `command-failed` entry written to the Wrangler output file (`WRANGLER_OUTPUT_FILE_PATH`/`WRANGLER_OUTPUT_FILE_DIRECTORY`) gains a `retry_after_ms` field. This lets scripts and CI/CD pipelines calling Wrangler repeatedly (for example, `wrangler versions upload` on every commit) read the wait duration directly instead of regex-parsing stderr. + + `APIError.isRetryable()` is unchanged (still `5xx` only); `retryOnAPIFailure()` separately retries 429s. `retryAfterMs`, when present, is honoured for any retried error, not just 429s. + + `retryAfterMs` is also now populated on `APIError`s raised from direct R2 object requests, the Browser Rendering API, and errors surfaced from commands using the official `cloudflare` SDK client. + +- [#14712](https://github.com/cloudflare/workers-sdk/pull/14712) [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1) Thanks [@mack-erel](https://github.com/mack-erel)! - Support `connect()` on remote VPC Network and VPC Service bindings in local development + + Remote VPC Network and VPC Service bindings previously only supported HTTP and JSRPC, so calling `binding.connect(address)` against a private TCP service (for example a database) failed in local dev with `Incoming CONNECT on a worker not supported`. Raw TCP connections through remote VPC Network and VPC Service bindings now work in local development. + + This feature is experimental. Existing HTTP and JSRPC usage of remote VPC Network and VPC Service bindings is unaffected, and no new configuration is required. + +### Patch Changes + +- [#14833](https://github.com/cloudflare/workers-sdk/pull/14833) [`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7) Thanks [@DiogoSantoss](https://github.com/DiogoSantoss)! - Color Email Routing plan change markers + + Wrangler now highlights additions in green, updates in yellow, and deletions and conflicts in red so Email Routing deployment plans are easier to scan before confirmation. + +- [#14833](https://github.com/cloudflare/workers-sdk/pull/14833) [`773ead4`](https://github.com/cloudflare/workers-sdk/commit/773ead41c7b9338b566a268fd0d88eb8613a3de7) Thanks [@DiogoSantoss](https://github.com/DiogoSantoss)! - Apply Email Routing changes across independent zones concurrently + + Wrangler now limits concurrent zone updates while preserving the Email Routing plan order within each zone. Deployments that configure addresses across multiple zones complete faster without breaking delete-before-add transitions at a zone's rule limit. + +- [#14815](https://github.com/cloudflare/workers-sdk/pull/14815) [`09b8a44`](https://github.com/cloudflare/workers-sdk/commit/09b8a44e736f28798c733e46ec11eced25fdc897) Thanks [@chinesepowered](https://github.com/chinesepowered)! - Fix `wrangler cloudchamber curl` mangling header values that contain a colon + + Header values were split on every colon and only the segment between the first and second was sent, so `--header location:https://example.com/x` arrived as `https`. Headers are now split on the first colon only. A header that is not in the documented `--header :` form previously threw an unhandled `TypeError`, and now reports a clear error. + +- [#14806](https://github.com/cloudflare/workers-sdk/pull/14806) [`e8b3a9d`](https://github.com/cloudflare/workers-sdk/commit/e8b3a9d8bf5f63f7e318de220d91625f96cfb85a) Thanks [@akim136](https://github.com/akim136)! - Handle and explain authentication failures from remote bindings during local development + + Wrangler now recognizes authentication failures from remote preview sessions and reports that bindings which need to run remotely require Cloudflare authentication even when the rest of the Worker is developed locally. + +- [#14801](https://github.com/cloudflare/workers-sdk/pull/14801) [`b737676`](https://github.com/cloudflare/workers-sdk/commit/b737676db01a62e115b7fc56b5af36f5daaf5f6e) Thanks [@emily-shen](https://github.com/emily-shen)! - Speed up old debug log cleanup by reading each log file's date from its filename instead of `stat`-ing every file + + Wrangler periodically deletes debug log files older than 30 days from its logs directory. Previously it made a filesystem `stat` call for each file to read its modification time; it now derives the age from the timestamp already encoded in the log filename, avoiding that extra work. + +- Updated dependencies [[`1035f74`](https://github.com/cloudflare/workers-sdk/commit/1035f7450006c5c8b8b003135d2b530193c913a1), [`e426cb9`](https://github.com/cloudflare/workers-sdk/commit/e426cb998dce7ecb43ee7ddea1a0b1987add5e1a), [`3a22ae5`](https://github.com/cloudflare/workers-sdk/commit/3a22ae532c5c75c716d4c219e116eb3e0c5b236e), [`465c0fb`](https://github.com/cloudflare/workers-sdk/commit/465c0fb53dbce3613b39f6436d88e15d60caa468), [`6e0bf6e`](https://github.com/cloudflare/workers-sdk/commit/6e0bf6e917bf4a2b9cd3ee741e625174075e38e1)]: + - miniflare@4.20260722.1 + ## 4.114.0 ### Minor Changes diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index 0e0b290433d..9487ea6dca4 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -1,6 +1,6 @@ { "name": "wrangler", - "version": "4.114.0", + "version": "4.115.0", "description": "Command-line interface for all things Cloudflare Workers", "keywords": [ "assembly",