From c72180e186f35c930c204cc2364aa6b20c1ea9ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Somhairle=20MacLe=C3=B2id?= Date: Tue, 25 Aug 2026 16:20:18 +0100 Subject: [PATCH] Revert "Version Packages (#15291)" This reverts commit d765e10a90f666ffc5939988b1e859616f3b029c. --- .changeset/bright-ravens-resolve.md | 7 + .changeset/c3-frameworks-update-15321.md | 11 ++ .changeset/c3-frameworks-update-15322.md | 11 ++ .changeset/clean-workflow-dev-remote.md | 7 + .changeset/curvy-snails-listen.md | 7 + .changeset/dependabot-update-15294.md | 13 ++ .changeset/dependabot-update-15328.md | 13 ++ .changeset/dependabot-update-15346.md | 13 ++ .changeset/eighty-eagles-smoke.md | 25 +++ .changeset/email-artifact-message-ids.md | 11 ++ .changeset/email-reply-builder.md | 7 + .changeset/email-test-harness-events.md | 35 ++++ .changeset/fresh-dogs-configure.md | 8 + .changeset/fuzzy-images-share.md | 5 + .changeset/fuzzy-streams-share.md | 5 + .changeset/hyperdrive-planetscale.md | 24 +++ .changeset/input-settings-schema-rename.md | 7 + .changeset/linux-secret-tool-probe.md | 8 + .changeset/local-container-fuse-privileges.md | 9 + .changeset/local-explorer-email-api.md | 45 +++++ .changeset/lucky-donkeys-listen.md | 20 +++ ...are-dev-registry-reregister-after-sweep.md | 7 + .changeset/miniflare-sighup-orphan-workerd.md | 7 + .changeset/mode-in-build-output.md | 10 ++ .changeset/preview-no-active-urls.md | 7 + .changeset/preview-pull-request-metadata.md | 10 ++ .changeset/quick-taxis-test.md | 7 + .changeset/quiet-skills-update.md | 7 + .../settings-config-accessors-rename.md | 7 + .changeset/strong-ravens-share.md | 26 +++ .changeset/tidy-binding-dev-config.md | 8 + .changeset/tidy-mails-agree.md | 7 + .changeset/tidy-spoons-smile.md | 7 + ...test-plugin-shared-remote-proxy-session.md | 7 + packages/autoconfig/CHANGELOG.md | 13 -- packages/autoconfig/package.json | 2 +- packages/build-output-utils/CHANGELOG.md | 17 -- packages/build-output-utils/package.json | 2 +- packages/config/CHANGELOG.md | 30 ---- packages/config/package.json | 2 +- packages/create-cloudflare/CHANGELOG.md | 24 --- packages/create-cloudflare/package.json | 2 +- packages/deploy-helpers/CHANGELOG.md | 15 -- packages/deploy-helpers/package.json | 2 +- packages/miniflare/CHANGELOG.md | 165 ------------------ packages/miniflare/package.json | 2 +- packages/pages-shared/CHANGELOG.md | 7 - packages/pages-shared/package.json | 2 +- packages/remote-bindings/CHANGELOG.md | 9 - packages/remote-bindings/package.json | 2 +- packages/runtime-types/CHANGELOG.md | 7 - packages/runtime-types/package.json | 2 +- packages/vite-plugin-cloudflare/CHANGELOG.md | 18 -- packages/vite-plugin-cloudflare/package.json | 2 +- packages/vitest-plugin/CHANGELOG.md | 35 ---- packages/vitest-plugin/package.json | 2 +- packages/workers-auth/CHANGELOG.md | 8 - packages/workers-auth/package.json | 2 +- packages/wrangler/CHANGELOG.md | 140 --------------- packages/wrangler/package.json | 2 +- 60 files changed, 421 insertions(+), 501 deletions(-) create mode 100644 .changeset/bright-ravens-resolve.md create mode 100644 .changeset/c3-frameworks-update-15321.md create mode 100644 .changeset/c3-frameworks-update-15322.md create mode 100644 .changeset/clean-workflow-dev-remote.md create mode 100644 .changeset/curvy-snails-listen.md create mode 100644 .changeset/dependabot-update-15294.md create mode 100644 .changeset/dependabot-update-15328.md create mode 100644 .changeset/dependabot-update-15346.md create mode 100644 .changeset/eighty-eagles-smoke.md create mode 100644 .changeset/email-artifact-message-ids.md create mode 100644 .changeset/email-reply-builder.md create mode 100644 .changeset/email-test-harness-events.md create mode 100644 .changeset/fresh-dogs-configure.md create mode 100644 .changeset/fuzzy-images-share.md create mode 100644 .changeset/fuzzy-streams-share.md create mode 100644 .changeset/hyperdrive-planetscale.md create mode 100644 .changeset/input-settings-schema-rename.md create mode 100644 .changeset/linux-secret-tool-probe.md create mode 100644 .changeset/local-container-fuse-privileges.md create mode 100644 .changeset/local-explorer-email-api.md create mode 100644 .changeset/lucky-donkeys-listen.md create mode 100644 .changeset/miniflare-dev-registry-reregister-after-sweep.md create mode 100644 .changeset/miniflare-sighup-orphan-workerd.md create mode 100644 .changeset/mode-in-build-output.md create mode 100644 .changeset/preview-no-active-urls.md create mode 100644 .changeset/preview-pull-request-metadata.md create mode 100644 .changeset/quick-taxis-test.md create mode 100644 .changeset/quiet-skills-update.md create mode 100644 .changeset/settings-config-accessors-rename.md create mode 100644 .changeset/strong-ravens-share.md create mode 100644 .changeset/tidy-binding-dev-config.md create mode 100644 .changeset/tidy-mails-agree.md create mode 100644 .changeset/tidy-spoons-smile.md create mode 100644 .changeset/vitest-plugin-shared-remote-proxy-session.md diff --git a/.changeset/bright-ravens-resolve.md b/.changeset/bright-ravens-resolve.md new file mode 100644 index 00000000000..978aa6e3529 --- /dev/null +++ b/.changeset/bright-ravens-resolve.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/vitest-plugin": minor +--- + +Support Workerd's new module registry in Workers Vitest tests + +The pool now follows Workerd's V2 module fallback protocol when `new_module_registry` is selected while retaining the V1 path for `legacy_module_registry`. Tests using the new registry preserve URL-based `import.meta` behavior and load CommonJS dependencies as native CommonJS modules with named exports. diff --git a/.changeset/c3-frameworks-update-15321.md b/.changeset/c3-frameworks-update-15321.md new file mode 100644 index 00000000000..86798ca6c22 --- /dev/null +++ b/.changeset/c3-frameworks-update-15321.md @@ -0,0 +1,11 @@ +--- +"create-cloudflare": patch +--- + +Update dependencies of "create-cloudflare" + +The following dependency versions have been updated: + +| Dependency | From | To | +| --------------- | ------ | ------ | +| @angular/create | 22.1.4 | 22.1.5 | diff --git a/.changeset/c3-frameworks-update-15322.md b/.changeset/c3-frameworks-update-15322.md new file mode 100644 index 00000000000..3ff45b49a6f --- /dev/null +++ b/.changeset/c3-frameworks-update-15322.md @@ -0,0 +1,11 @@ +--- +"create-cloudflare": patch +--- + +Update dependencies of "create-cloudflare" + +The following dependency versions have been updated: + +| Dependency | From | To | +| --------------- | ------ | ------ | +| create-next-app | 16.3.1 | 16.3.2 | diff --git a/.changeset/clean-workflow-dev-remote.md b/.changeset/clean-workflow-dev-remote.md new file mode 100644 index 00000000000..84b0c80ac94 --- /dev/null +++ b/.changeset/clean-workflow-dev-remote.md @@ -0,0 +1,7 @@ +--- +"miniflare": patch +--- + +Remove unsupported remote configuration from Workflow bindings + +Miniflare now rejects `dev.remote` on Workflow bindings and no longer exposes or converts the legacy Workflow `remoteProxyConnectionString` option. Workflows always use the local simulator. diff --git a/.changeset/curvy-snails-listen.md b/.changeset/curvy-snails-listen.md new file mode 100644 index 00000000000..e7e499ba1f6 --- /dev/null +++ b/.changeset/curvy-snails-listen.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/config": patch +--- + +Fix the inferred type of `ConfigExportsSchema` to reserve the `settings` key for settings configuration + +Parsed config exports now expose `settings` as a settings configuration while treating all other exports as Worker configurations. Validation continues to report specific errors when a settings configuration uses the wrong export name or the reserved name contains a Worker configuration, and now explains how to handle unsupported exports. diff --git a/.changeset/dependabot-update-15294.md b/.changeset/dependabot-update-15294.md new file mode 100644 index 00000000000..00e81688b4f --- /dev/null +++ b/.changeset/dependabot-update-15294.md @@ -0,0 +1,13 @@ +--- +"miniflare": patch +"wrangler": patch +--- + +Update dependencies of "miniflare", "wrangler" + +The following dependency versions have been updated: + +| Dependency | From | To | +| ------------------------- | ------------- | ------------- | +| @cloudflare/workers-types | ^5.20260820.1 | ^5.20260821.1 | +| workerd | 1.20260820.1 | 1.20260821.1 | diff --git a/.changeset/dependabot-update-15328.md b/.changeset/dependabot-update-15328.md new file mode 100644 index 00000000000..2832dc880e6 --- /dev/null +++ b/.changeset/dependabot-update-15328.md @@ -0,0 +1,13 @@ +--- +"miniflare": patch +"wrangler": patch +--- + +Update dependencies of "miniflare", "wrangler" + +The following dependency versions have been updated: + +| Dependency | From | To | +| ------------------------- | ------------- | ------------- | +| @cloudflare/workers-types | ^5.20260821.1 | ^5.20260823.1 | +| workerd | 1.20260821.1 | 1.20260824.1 | diff --git a/.changeset/dependabot-update-15346.md b/.changeset/dependabot-update-15346.md new file mode 100644 index 00000000000..c304b426e86 --- /dev/null +++ b/.changeset/dependabot-update-15346.md @@ -0,0 +1,13 @@ +--- +"miniflare": patch +"wrangler": patch +--- + +Update dependencies of "miniflare", "wrangler" + +The following dependency versions have been updated: + +| Dependency | From | To | +| ------------------------- | ------------- | ------------- | +| @cloudflare/workers-types | ^5.20260823.1 | ^5.20260825.1 | +| workerd | 1.20260824.1 | 1.20260825.1 | diff --git a/.changeset/eighty-eagles-smoke.md b/.changeset/eighty-eagles-smoke.md new file mode 100644 index 00000000000..e3e4e497674 --- /dev/null +++ b/.changeset/eighty-eagles-smoke.md @@ -0,0 +1,25 @@ +--- +"wrangler": minor +--- + +Add `default_retention` to Workflow bindings for configuring how long instances are retained + +Workflow instances are retained for an account-wide default period after they finish. You can now set a per-Workflow default in your Wrangler configuration, applied to instances that do not specify their own retention: + +```jsonc +{ + "workflows": [ + { + "binding": "MY_WORKFLOW", + "name": "my-workflow", + "class_name": "MyWorkflow", + "default_retention": { + "success_retention": "3 days", + "error_retention": "7 days", + }, + }, + ], +} +``` + +Each side is optional and accepts either a duration string such as `"3 days"` or a whole number of milliseconds. Durations are interpreted by the Workflows API, which also caps them at your account's retention limit. diff --git a/.changeset/email-artifact-message-ids.md b/.changeset/email-artifact-message-ids.md new file mode 100644 index 00000000000..75f469b037d --- /dev/null +++ b/.changeset/email-artifact-message-ids.md @@ -0,0 +1,11 @@ +--- +"miniflare": patch +--- + +Generate and use production-style Message-IDs for local email artifacts + +Locally sent emails and replies now use generated Message-IDs - which are 36 alphanumeric characters - consistently in returned results, raw MIME headers, Local Explorer records, and stored artifact filenames. User-provided `Message-ID` headers are replaced by the generated ID. + +For example, sending an email from `sender@example.com` may return ``. The raw email uses that same value for its `Message-ID` header, the Local Explorer exposes the same ID, and the stored artifact is named `AbCdEfGhIjKlMnOpQrStUvWxYz0123456789@example.com.eml`. + +Similarly, a reply containing `Message-ID: ` is stored and returned with a newly generated ID instead. This mirrors production behavior and prevents the supplied ID from becoming the local artifact key. diff --git a/.changeset/email-reply-builder.md b/.changeset/email-reply-builder.md new file mode 100644 index 00000000000..57ec77b1baf --- /dev/null +++ b/.changeset/email-reply-builder.md @@ -0,0 +1,7 @@ +--- +"miniflare": minor +--- + +Support `EmailReplyMessageBuilder` when replying from local email handlers + +Builder replies now generate the recipient, threading headers, and a production-style Message-ID automatically. Raw `EmailMessage` replies also use a generated production-style Message-ID; user-provided Message-ID headers are rejected in favor of the generated ID. diff --git a/.changeset/email-test-harness-events.md b/.changeset/email-test-harness-events.md new file mode 100644 index 00000000000..c78a9dcd3cd --- /dev/null +++ b/.changeset/email-test-harness-events.md @@ -0,0 +1,35 @@ +--- +"miniflare": minor +"wrangler": minor +--- + +Include a chronological list of handler events in email test harness results, so programmatic local email tests can assert the order in which messages are received, forwarded, replied to, or rejected. + +```ts +const result = await server.getWorker().email({ + from: "sender@example.com", + to: "inbox@example.com", + raw: [ + "From: Sender ", + "To: Inbox ", + "Message-ID: ", + "Subject: Test email", + "", + "Hello from the test harness", + ].join("\r\n"), +}); + +expect(result.events).toEqual([ + { type: "received", timestamp: expect.any(String) }, + { + type: "forward", + timestamp: expect.any(String), + messageId: expect.any(String), + }, + { + type: "reply", + timestamp: expect.any(String), + messageId: expect.any(String), + }, +]); +``` diff --git a/.changeset/fresh-dogs-configure.md b/.changeset/fresh-dogs-configure.md new file mode 100644 index 00000000000..17fde1171b5 --- /dev/null +++ b/.changeset/fresh-dogs-configure.md @@ -0,0 +1,8 @@ +--- +"@cloudflare/autoconfig": minor +"wrangler": patch +--- + +Prepare autoconfig for multiple configuration targets + +Add target-specific configuration output and command detection while preserving Wrangler's existing setup and deployment behavior. diff --git a/.changeset/fuzzy-images-share.md b/.changeset/fuzzy-images-share.md new file mode 100644 index 00000000000..fde1e9c2141 --- /dev/null +++ b/.changeset/fuzzy-images-share.md @@ -0,0 +1,5 @@ +--- +"miniflare": minor +--- + +Support Images data in experimental shared local storage diff --git a/.changeset/fuzzy-streams-share.md b/.changeset/fuzzy-streams-share.md new file mode 100644 index 00000000000..a89366975ff --- /dev/null +++ b/.changeset/fuzzy-streams-share.md @@ -0,0 +1,5 @@ +--- +"miniflare": minor +--- + +Support Stream in experimental shared local storage diff --git a/.changeset/hyperdrive-planetscale.md b/.changeset/hyperdrive-planetscale.md new file mode 100644 index 00000000000..d444161b553 --- /dev/null +++ b/.changeset/hyperdrive-planetscale.md @@ -0,0 +1,24 @@ +--- +"wrangler": minor +--- + +Add experimental `wrangler hyperdrive planetscale signature` for provisioning Cloudflare-billed PlanetScale databases + +`wrangler hyperdrive planetscale signature` prints a signed authorization as JSON, proving to PlanetScale that Cloudflare will be billed for the database you are about to create: + +```sh +npx wrangler hyperdrive planetscale signature | \ + pscale database create \ + --org \ + --engine postgresql \ + --cloudflare-billing @- \ + --format json +``` + +`pscale database create` defaults to Vitess, so pass `--engine postgresql` for a Postgres database, and `--format json` is recommended when the output is consumed by an agent. + +This requires `pscale` v0.313.0 or newer. Wrangler authorizes the Cloudflare billing side only, so your PlanetScale credentials stay between you and `pscale`. + +The signature is a cryptographically signed token that authorizes creating a database billed to your Cloudflare account. Treat it as a credential and do not share it. Piping it, as above, is recommended over passing it as a command line argument. + +This command is experimental and its interface may change. diff --git a/.changeset/input-settings-schema-rename.md b/.changeset/input-settings-schema-rename.md new file mode 100644 index 00000000000..aecd31a0dd6 --- /dev/null +++ b/.changeset/input-settings-schema-rename.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/config": minor +--- + +Rename the settings config schema exports to the input/output convention + +`SettingsSchema` is now `InputSettingsSchema` and `ParsedSettingsConfig` is now `ParsedInputSettingsConfig`. diff --git a/.changeset/linux-secret-tool-probe.md b/.changeset/linux-secret-tool-probe.md new file mode 100644 index 00000000000..83b640c40a3 --- /dev/null +++ b/.changeset/linux-secret-tool-probe.md @@ -0,0 +1,8 @@ +--- +"@cloudflare/workers-auth": patch +"wrangler": patch +--- + +Fix `wrangler login --use-keyring` incorrectly reporting that `secret-tool` is missing on Linux + +Libsecret's `secret-tool` does not support `--version`; it prints usage and exits 2, which Wrangler previously interpreted as unavailable. Wrangler now reports it missing only when launching the executable fails. diff --git a/.changeset/local-container-fuse-privileges.md b/.changeset/local-container-fuse-privileges.md new file mode 100644 index 00000000000..ce0232c0be7 --- /dev/null +++ b/.changeset/local-container-fuse-privileges.md @@ -0,0 +1,9 @@ +--- +"wrangler": minor +"miniflare": minor +"@cloudflare/vite-plugin": minor +--- + +Enable FUSE-capable local container development + +Miniflare now automatically passes the Docker privileges needed for FUSE to local Durable Object containers when using local rootless Docker on Linux with `/dev/fuse` available, or a local Docker engine on macOS or through WSL where Linux containers run in a VM. This applies to Wrangler, the Cloudflare Vite plugin, and direct Miniflare use. diff --git a/.changeset/local-explorer-email-api.md b/.changeset/local-explorer-email-api.md new file mode 100644 index 00000000000..631e393dd84 --- /dev/null +++ b/.changeset/local-explorer-email-api.md @@ -0,0 +1,45 @@ +--- +"miniflare": minor +--- + +Capture locally sent and received emails, along with forwarding and reply activity and metadata, for inspection through the Local Explorer email API. + +Miniflare now captures locally sent and received emails, including forwarding, reply, rejection, and exception activity. The following endpoints are available below `/cdn-cgi/local/explorer/api` while `wrangler dev` is running: + +- `POST /local/email/routing/send?worker=` sends a test email to a Worker's `email()` handler. +- `GET /local/email/routing?worker=` lists emails received by a Worker. +- `GET /local/email/routing?email_id=&worker=` returns a received email and its handler activity. +- `GET /local/email/sending?worker=` lists emails sent through a Worker's `send_email` bindings. +- `GET /local/email/sending?email_id=&worker=` returns a sent email. + +For example, send and then inspect a test email against a Worker named `my-worker`: + +```sh +curl -X POST \ + "http://localhost:8787/cdn-cgi/local/explorer/api/local/email/routing/send?worker=my-worker" \ + -H "Content-Type: application/json" \ + --data '{ + "from": "sender@example.com", + "to": ["inbox@example.com"], + "subject": "Local test", + "text": "Hello from Local Explorer" + }' + +curl \ + "http://localhost:8787/cdn-cgi/local/explorer/api/local/email/routing?worker=my-worker" +``` + +List endpoints support `per_page` and opaque `cursor` query parameters. File paths logged by the `send_email` binding are asynchronous debugging artifacts and should not be used to synchronize after `send()` resolves. Email handler exceptions are logged when structured local delivery reports an exception outcome. + +When email content exceeds the local storage row budget of approximately 2 MB, the email is delivered in full but the Local Explorer capture is truncated to fit. Detail responses identify each truncated sent email, received email, or reply in the top-level `messages` array with warning code `10604`; for example: + +```json +{ + "messages": [ + { + "code": 10604, + "message": "Displayed received email content was truncated during local capture. The complete message was still delivered to the Worker." + } + ] +} +``` diff --git a/.changeset/lucky-donkeys-listen.md b/.changeset/lucky-donkeys-listen.md new file mode 100644 index 00000000000..ae8bb9f5cdd --- /dev/null +++ b/.changeset/lucky-donkeys-listen.md @@ -0,0 +1,20 @@ +--- +"@cloudflare/vitest-plugin": minor +--- + +Add an experimental `newConfig` option for loading the Worker's configuration from `cloudflare.config.ts` + +Projects that have migrated to the new TypeScript configuration format had no way to run their Vitest suite against their real bindings, since there was no Wrangler configuration file left to point `wrangler.configPath` at. This adds the missing option, modelled on `@cloudflare/vite-plugin`'s `experimental.newConfig`: + +```ts +import { cloudflareTest } from "@cloudflare/vitest-plugin"; +import { defineProject } from "vitest/config"; + +export default defineProject({ + plugins: [cloudflareTest({ experimental: { newConfig: true } })], +}); +``` + +`newConfig: true` loads `cloudflare.config.ts` from the project root; pass `{ configPath: "..." }` to load it from elsewhere. Config functions are called with `ctx.mode` set to Vite's mode, which defaults to `"test"` and can be overridden with `--mode`. `experimental.newConfig` cannot be combined with `wrangler`. + +This is experimental and may change without a major version bump. Wrangler environments, `wrangler.config.ts` tooling configuration, and type generation are not supported yet. diff --git a/.changeset/miniflare-dev-registry-reregister-after-sweep.md b/.changeset/miniflare-dev-registry-reregister-after-sweep.md new file mode 100644 index 00000000000..c3a3269e955 --- /dev/null +++ b/.changeset/miniflare-dev-registry-reregister-after-sweep.md @@ -0,0 +1,7 @@ +--- +"miniflare": patch +--- + +Restore cross-process service bindings after a machine wakes from sleep + +Workers running in separate `wrangler dev` or Vite dev sessions now reconnect automatically after the machine wakes. Previously, service bindings could return `Worker "" not found` until the serving process reloaded or restarted. diff --git a/.changeset/miniflare-sighup-orphan-workerd.md b/.changeset/miniflare-sighup-orphan-workerd.md new file mode 100644 index 00000000000..4c38d84f7c1 --- /dev/null +++ b/.changeset/miniflare-sighup-orphan-workerd.md @@ -0,0 +1,7 @@ +--- +"miniflare": patch +--- + +Shut down `workerd` when Miniflare is terminated with `SIGHUP` + +On `SIGHUP`, Miniflare now stops `workerd` and removes its temporary directory instead of leaving them behind. Previously only `SIGINT` and `SIGTERM` were handled, so tools that embed Miniflare, such as `@cloudflare/vitest-pool-workers` and `@cloudflare/vite-plugin`, could leave a stray process and directory behind on each run. diff --git a/.changeset/mode-in-build-output.md b/.changeset/mode-in-build-output.md new file mode 100644 index 00000000000..ba9397a6746 --- /dev/null +++ b/.changeset/mode-in-build-output.md @@ -0,0 +1,10 @@ +--- +"@cloudflare/build-output-utils": minor +"@cloudflare/vite-plugin": minor +"@cloudflare/config": minor +"wrangler": minor +--- + +Record the selected mode in the Build Output Specification top-level `config.json` + +The mode a build was produced in is now written to `.cloudflare/output/v0/config.json` as a `mode` field, alongside the account and compliance settings. diff --git a/.changeset/preview-no-active-urls.md b/.changeset/preview-no-active-urls.md new file mode 100644 index 00000000000..5c9d90c6dab --- /dev/null +++ b/.changeset/preview-no-active-urls.md @@ -0,0 +1,7 @@ +--- +"wrangler": patch +--- + +`[private beta]`: Explain unavailable Preview URLs after `wrangler preview` deployments + +When a Preview deployment has no active URLs, Wrangler now explains how to enable Preview Deployments on workers.dev or a custom domain. diff --git a/.changeset/preview-pull-request-metadata.md b/.changeset/preview-pull-request-metadata.md new file mode 100644 index 00000000000..c3b29fdf66b --- /dev/null +++ b/.changeset/preview-pull-request-metadata.md @@ -0,0 +1,10 @@ +--- +"@cloudflare/deploy-helpers": minor +"wrangler": minor +--- + +Add pull request metadata to `wrangler preview` deployments + +`wrangler preview` now detects the pull request associated with the current CI run (GitHub Actions, GitLab CI, CircleCI, and a generic `PULL_REQUEST_URL`/`PR_URL`/`CHANGE_URL` fallback) and attaches it, along with the repository URL, to the preview deployment as annotations (`workers/pull_request_number`, `workers/pull_request_url`, `workers/repository_url`). + +This is best effort: if no pull request can be detected, nothing changes. When a pull request is detected, its URL is now also shown in the `wrangler preview` command output. diff --git a/.changeset/quick-taxis-test.md b/.changeset/quick-taxis-test.md new file mode 100644 index 00000000000..a6157090e09 --- /dev/null +++ b/.changeset/quick-taxis-test.md @@ -0,0 +1,7 @@ +--- +"create-cloudflare": patch +--- + +Update the Hello World templates to use `@cloudflare/vitest-plugin` v1 + +Newly generated Workers projects now use the renamed Vitest integration package instead of the deprecated `@cloudflare/vitest-pool-workers` package. diff --git a/.changeset/quiet-skills-update.md b/.changeset/quiet-skills-update.md new file mode 100644 index 00000000000..910fd731eb9 --- /dev/null +++ b/.changeset/quiet-skills-update.md @@ -0,0 +1,7 @@ +--- +"wrangler": patch +--- + +Stop automatically offering to install Cloudflare skills for new users + +Wrangler will no longer prompt new users to install Cloudflare skills after commands complete. It will continue to offer updates to skills that Wrangler previously installed. diff --git a/.changeset/settings-config-accessors-rename.md b/.changeset/settings-config-accessors-rename.md new file mode 100644 index 00000000000..84b7f2fde35 --- /dev/null +++ b/.changeset/settings-config-accessors-rename.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/build-output-utils": minor +--- + +Rename the top-level config accessors after the config they operate on + +`getRootConfigPath` and `writeRootConfig` are now `getSettingsConfigPath` and `writeSettingsConfig`, and the corresponding validation error reads `invalid settings config` rather than `invalid root config`. diff --git a/.changeset/strong-ravens-share.md b/.changeset/strong-ravens-share.md new file mode 100644 index 00000000000..400dfb7694e --- /dev/null +++ b/.changeset/strong-ravens-share.md @@ -0,0 +1,26 @@ +--- +"miniflare": minor +--- + +Add experimental shared local storage, letting several Miniflare instances read and write one set of local resources + +Each instance previously kept its own copy of local state, so two dev sessions pointed at the same KV namespace or D1 database could not see each other's writes. Instances that opt in now elect a single storage owner through the dev registry and route storage through it, so resources with the same ID resolve to the same data. + +Opt in with `unsafeEnableSharedStorage`, which requires three paths to be set: + +```js +new Miniflare({ + unsafeEnableSharedStorage: true, + // Shared between instances: resources that participate in sharing live here + resourcePersistencePath: "/path/to/shared/state", + // Per project: resources that cannot be shared keep their own state here + isolatedResourcePersistencePath: "/path/to/project/state", + // Instances elect the storage owner through the dev registry + unsafeDevRegistryPath: "/path/to/registry", + // ... +}); +``` + +KV, D1, R2, Rate Limits, and Secrets Store participate in sharing. Cache, Durable Objects, Workflows, observability, and Hello World storage do not yet, and stay instance-local under `isolatedResourcePersistencePath`, keeping their state across restarts without concurrent access to the shared root. + +This is experimental and the `unsafe`-prefixed options may change without a major version bump. diff --git a/.changeset/tidy-binding-dev-config.md b/.changeset/tidy-binding-dev-config.md new file mode 100644 index 00000000000..8de1d433c3f --- /dev/null +++ b/.changeset/tidy-binding-dev-config.md @@ -0,0 +1,8 @@ +--- +"@cloudflare/config": minor +"miniflare": minor +--- + +Consolidate development-only binding configuration under `dev` + +This experimental configuration now uses `dev.remote` for remote bindings and `dev.connectionString` for Hyperdrive. Miniflare's v5 binding configuration follows the same shape, and R2's local S3 credentials now share the `dev` object. diff --git a/.changeset/tidy-mails-agree.md b/.changeset/tidy-mails-agree.md new file mode 100644 index 00000000000..b897d28207e --- /dev/null +++ b/.changeset/tidy-mails-agree.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/config": minor +--- + +Reject conflicting destination restrictions in send-email bindings + +Send-email bindings now match Wrangler validation by allowing either `destinationAddress` or `allowedDestinationAddresses`, but not both. `allowedSenderAddresses` remains an independent restriction that can accompany either destination mode. diff --git a/.changeset/tidy-spoons-smile.md b/.changeset/tidy-spoons-smile.md new file mode 100644 index 00000000000..1901766ed99 --- /dev/null +++ b/.changeset/tidy-spoons-smile.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/config": patch +--- + +Fix declaration emit for values returned by `defineSettings` + +Projects can now export a `defineSettings()` result while generating TypeScript declarations without encountering TS4023. diff --git a/.changeset/vitest-plugin-shared-remote-proxy-session.md b/.changeset/vitest-plugin-shared-remote-proxy-session.md new file mode 100644 index 00000000000..f7019dee53b --- /dev/null +++ b/.changeset/vitest-plugin-shared-remote-proxy-session.md @@ -0,0 +1,7 @@ +--- +"@cloudflare/vitest-plugin": patch +--- + +Fix "Network connection lost" when multiple test files use remote bindings + +Remote proxy sessions are shared across pool workers by Wrangler config path, but were disposed during each test file's teardown. Because Vitest starts the next file's worker before the previous one finishes stopping, later files reused an already-disposed session and failed with "Network connection lost". Sessions are now disposed only once the last pool worker stops. diff --git a/packages/autoconfig/CHANGELOG.md b/packages/autoconfig/CHANGELOG.md index 1ddeaf909ac..0b59697de76 100644 --- a/packages/autoconfig/CHANGELOG.md +++ b/packages/autoconfig/CHANGELOG.md @@ -1,18 +1,5 @@ # @cloudflare/autoconfig -## 0.3.0 - -### Minor Changes - -- [#15246](https://github.com/cloudflare/workers-sdk/pull/15246) [`daefb3c`](https://github.com/cloudflare/workers-sdk/commit/daefb3cc0f0b884b8ce82b22ed9b67a9c43919be) Thanks [@edmundhung](https://github.com/edmundhung)! - Prepare autoconfig for multiple configuration targets - - Add target-specific configuration output and command detection while preserving Wrangler's existing setup and deployment behavior. - -### Patch Changes - -- Updated dependencies [[`ead8f69`](https://github.com/cloudflare/workers-sdk/commit/ead8f69e85efa758dd066b4d1cfc2fec406939dd), [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a), [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c), [`7f66836`](https://github.com/cloudflare/workers-sdk/commit/7f668362bd5675afb95c1cb5128fad6aa092a430), [`acb14d0`](https://github.com/cloudflare/workers-sdk/commit/acb14d01d64f21f0f21c247da7c2fcb0557ebb3d)]: - - @cloudflare/config@0.8.0 - ## 0.2.9 ### Patch Changes diff --git a/packages/autoconfig/package.json b/packages/autoconfig/package.json index 10cad506246..520c50cf11e 100644 --- a/packages/autoconfig/package.json +++ b/packages/autoconfig/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/autoconfig", - "version": "0.3.0", + "version": "0.2.9", "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 556c6383a9d..5ab4cc4018c 100644 --- a/packages/build-output-utils/CHANGELOG.md +++ b/packages/build-output-utils/CHANGELOG.md @@ -1,22 +1,5 @@ # @cloudflare/build-output-utils -## 0.2.0 - -### Minor Changes - -- [#15326](https://github.com/cloudflare/workers-sdk/pull/15326) [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Record the selected mode in the Build Output Specification top-level `config.json` - - The mode a build was produced in is now written to `.cloudflare/output/v0/config.json` as a `mode` field, alongside the account and compliance settings. - -- [#15326](https://github.com/cloudflare/workers-sdk/pull/15326) [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Rename the top-level config accessors after the config they operate on - - `getRootConfigPath` and `writeRootConfig` are now `getSettingsConfigPath` and `writeSettingsConfig`, and the corresponding validation error reads `invalid settings config` rather than `invalid root config`. - -### Patch Changes - -- Updated dependencies [[`ead8f69`](https://github.com/cloudflare/workers-sdk/commit/ead8f69e85efa758dd066b4d1cfc2fec406939dd), [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a), [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c), [`7f66836`](https://github.com/cloudflare/workers-sdk/commit/7f668362bd5675afb95c1cb5128fad6aa092a430), [`acb14d0`](https://github.com/cloudflare/workers-sdk/commit/acb14d01d64f21f0f21c247da7c2fcb0557ebb3d)]: - - @cloudflare/config@0.8.0 - ## 0.1.3 ### Patch Changes diff --git a/packages/build-output-utils/package.json b/packages/build-output-utils/package.json index d6eae9286d8..ef83e5d5000 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.2.0", + "version": "0.1.3", "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/config/CHANGELOG.md b/packages/config/CHANGELOG.md index f1451c4dc01..8ab0e678a6a 100644 --- a/packages/config/CHANGELOG.md +++ b/packages/config/CHANGELOG.md @@ -1,35 +1,5 @@ # @cloudflare/config -## 0.8.0 - -### Minor Changes - -- [#15326](https://github.com/cloudflare/workers-sdk/pull/15326) [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Rename the settings config schema exports to the input/output convention - - `SettingsSchema` is now `InputSettingsSchema` and `ParsedSettingsConfig` is now `ParsedInputSettingsConfig`. - -- [#15326](https://github.com/cloudflare/workers-sdk/pull/15326) [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Record the selected mode in the Build Output Specification top-level `config.json` - - The mode a build was produced in is now written to `.cloudflare/output/v0/config.json` as a `mode` field, alongside the account and compliance settings. - -- [#15318](https://github.com/cloudflare/workers-sdk/pull/15318) [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Consolidate development-only binding configuration under `dev` - - This experimental configuration now uses `dev.remote` for remote bindings and `dev.connectionString` for Hyperdrive. Miniflare's v5 binding configuration follows the same shape, and R2's local S3 credentials now share the `dev` object. - -- [#15325](https://github.com/cloudflare/workers-sdk/pull/15325) [`7f66836`](https://github.com/cloudflare/workers-sdk/commit/7f668362bd5675afb95c1cb5128fad6aa092a430) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Reject conflicting destination restrictions in send-email bindings - - Send-email bindings now match Wrangler validation by allowing either `destinationAddress` or `allowedDestinationAddresses`, but not both. `allowedSenderAddresses` remains an independent restriction that can accompany either destination mode. - -### Patch Changes - -- [#15324](https://github.com/cloudflare/workers-sdk/pull/15324) [`ead8f69`](https://github.com/cloudflare/workers-sdk/commit/ead8f69e85efa758dd066b4d1cfc2fec406939dd) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Fix the inferred type of `ConfigExportsSchema` to reserve the `settings` key for settings configuration - - Parsed config exports now expose `settings` as a settings configuration while treating all other exports as Worker configurations. Validation continues to report specific errors when a settings configuration uses the wrong export name or the reserved name contains a Worker configuration, and now explains how to handle unsupported exports. - -- [#15297](https://github.com/cloudflare/workers-sdk/pull/15297) [`acb14d0`](https://github.com/cloudflare/workers-sdk/commit/acb14d01d64f21f0f21c247da7c2fcb0557ebb3d) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Fix declaration emit for values returned by `defineSettings` - - Projects can now export a `defineSettings()` result while generating TypeScript declarations without encountering TS4023. - ## 0.7.0 ### Minor Changes diff --git a/packages/config/package.json b/packages/config/package.json index 74f668aade6..50b9cb125ab 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/config", - "version": "0.8.0", + "version": "0.7.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/create-cloudflare/CHANGELOG.md b/packages/create-cloudflare/CHANGELOG.md index 6e755381a9e..ed9437624cc 100644 --- a/packages/create-cloudflare/CHANGELOG.md +++ b/packages/create-cloudflare/CHANGELOG.md @@ -1,29 +1,5 @@ # create-cloudflare -## 2.72.3 - -### Patch Changes - -- [#15321](https://github.com/cloudflare/workers-sdk/pull/15321) [`c457bfc`](https://github.com/cloudflare/workers-sdk/commit/c457bfc6b5a575586354f5b0ad7a1100eff915fe) 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.1.4 | 22.1.5 | - -- [#15322](https://github.com/cloudflare/workers-sdk/pull/15322) [`9da6bbd`](https://github.com/cloudflare/workers-sdk/commit/9da6bbd5bea10deda3cf99c32ce3e093adbf9f5c) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "create-cloudflare" - - The following dependency versions have been updated: - - | Dependency | From | To | - | --------------- | ------ | ------ | - | create-next-app | 16.3.1 | 16.3.2 | - -- [#15328](https://github.com/cloudflare/workers-sdk/pull/15328) [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update the Hello World templates to use `@cloudflare/vitest-plugin` v1 - - Newly generated Workers projects now use the renamed Vitest integration package instead of the deprecated `@cloudflare/vitest-pool-workers` package. - ## 2.72.2 ### Patch Changes diff --git a/packages/create-cloudflare/package.json b/packages/create-cloudflare/package.json index 5225e03a3d8..010690edc5a 100644 --- a/packages/create-cloudflare/package.json +++ b/packages/create-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "create-cloudflare", - "version": "2.72.3", + "version": "2.72.2", "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 9323514f84b..6b2ef4b2091 100644 --- a/packages/deploy-helpers/CHANGELOG.md +++ b/packages/deploy-helpers/CHANGELOG.md @@ -1,20 +1,5 @@ # @cloudflare/deploy-helpers -## 0.9.0 - -### Minor Changes - -- [#14966](https://github.com/cloudflare/workers-sdk/pull/14966) [`a4c3458`](https://github.com/cloudflare/workers-sdk/commit/a4c3458cec77afa31e01d671d6b22ecfcf2c0107) Thanks [@yomna-shousha](https://github.com/yomna-shousha)! - Add pull request metadata to `wrangler preview` deployments - - `wrangler preview` now detects the pull request associated with the current CI run (GitHub Actions, GitLab CI, CircleCI, and a generic `PULL_REQUEST_URL`/`PR_URL`/`CHANGE_URL` fallback) and attaches it, along with the repository URL, to the preview deployment as annotations (`workers/pull_request_number`, `workers/pull_request_url`, `workers/repository_url`). - - This is best effort: if no pull request can be detected, nothing changes. When a pull request is detected, its URL is now also shown in the `wrangler preview` command output. - -### Patch Changes - -- Updated dependencies [[`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c), [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1), [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3), [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b), [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a), [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10), [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575), [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c)]: - - miniflare@5.20260825.0-alpha - ## 0.8.0 ### Minor Changes diff --git a/packages/deploy-helpers/package.json b/packages/deploy-helpers/package.json index 34c68beb458..f0a79be1c63 100644 --- a/packages/deploy-helpers/package.json +++ b/packages/deploy-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/deploy-helpers", - "version": "0.9.0", + "version": "0.8.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/miniflare/CHANGELOG.md b/packages/miniflare/CHANGELOG.md index c5624f129c9..03d461dee55 100644 --- a/packages/miniflare/CHANGELOG.md +++ b/packages/miniflare/CHANGELOG.md @@ -1,170 +1,5 @@ # miniflare -## 5.20260825.0-alpha - -### Minor Changes - -- [#15064](https://github.com/cloudflare/workers-sdk/pull/15064) [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Support `EmailReplyMessageBuilder` when replying from local email handlers - - Builder replies now generate the recipient, threading headers, and a production-style Message-ID automatically. Raw `EmailMessage` replies also use a generated production-style Message-ID; user-provided Message-ID headers are rejected in favor of the generated ID. - -- [#15064](https://github.com/cloudflare/workers-sdk/pull/15064) [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Include a chronological list of handler events in email test harness results, so programmatic local email tests can assert the order in which messages are received, forwarded, replied to, or rejected. - - ```ts - const result = await server.getWorker().email({ - from: "sender@example.com", - to: "inbox@example.com", - raw: [ - "From: Sender ", - "To: Inbox ", - "Message-ID: ", - "Subject: Test email", - "", - "Hello from the test harness", - ].join("\r\n"), - }); - - expect(result.events).toEqual([ - { type: "received", timestamp: expect.any(String) }, - { - type: "forward", - timestamp: expect.any(String), - messageId: expect.any(String), - }, - { - type: "reply", - timestamp: expect.any(String), - messageId: expect.any(String), - }, - ]); - ``` - -- [#15187](https://github.com/cloudflare/workers-sdk/pull/15187) [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b) Thanks [@penalosa](https://github.com/penalosa)! - Support Images data in experimental shared local storage - -- [#15188](https://github.com/cloudflare/workers-sdk/pull/15188) [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a) Thanks [@penalosa](https://github.com/penalosa)! - Support Stream in experimental shared local storage - -- [#15134](https://github.com/cloudflare/workers-sdk/pull/15134) [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a) Thanks [@gpanders](https://github.com/gpanders)! - Enable FUSE-capable local container development - - Miniflare now automatically passes the Docker privileges needed for FUSE to local Durable Object containers when using local rootless Docker on Linux with `/dev/fuse` available, or a local Docker engine on macOS or through WSL where Linux containers run in a VM. This applies to Wrangler, the Cloudflare Vite plugin, and direct Miniflare use. - -- [#15064](https://github.com/cloudflare/workers-sdk/pull/15064) [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Capture locally sent and received emails, along with forwarding and reply activity and metadata, for inspection through the Local Explorer email API. - - Miniflare now captures locally sent and received emails, including forwarding, reply, rejection, and exception activity. The following endpoints are available below `/cdn-cgi/local/explorer/api` while `wrangler dev` is running: - - - `POST /local/email/routing/send?worker=` sends a test email to a Worker's `email()` handler. - - `GET /local/email/routing?worker=` lists emails received by a Worker. - - `GET /local/email/routing?email_id=&worker=` returns a received email and its handler activity. - - `GET /local/email/sending?worker=` lists emails sent through a Worker's `send_email` bindings. - - `GET /local/email/sending?email_id=&worker=` returns a sent email. - - For example, send and then inspect a test email against a Worker named `my-worker`: - - ```sh - curl -X POST \ - "http://localhost:8787/cdn-cgi/local/explorer/api/local/email/routing/send?worker=my-worker" \ - -H "Content-Type: application/json" \ - --data '{ - "from": "sender@example.com", - "to": ["inbox@example.com"], - "subject": "Local test", - "text": "Hello from Local Explorer" - }' - - curl \ - "http://localhost:8787/cdn-cgi/local/explorer/api/local/email/routing?worker=my-worker" - ``` - - List endpoints support `per_page` and opaque `cursor` query parameters. File paths logged by the `send_email` binding are asynchronous debugging artifacts and should not be used to synchronize after `send()` resolves. Email handler exceptions are logged when structured local delivery reports an exception outcome. - - When email content exceeds the local storage row budget of approximately 2 MB, the email is delivered in full but the Local Explorer capture is truncated to fit. Detail responses identify each truncated sent email, received email, or reply in the top-level `messages` array with warning code `10604`; for example: - - ```json - { - "messages": [ - { - "code": 10604, - "message": "Displayed received email content was truncated during local capture. The complete message was still delivered to the Worker." - } - ] - } - ``` - -- [#15169](https://github.com/cloudflare/workers-sdk/pull/15169) [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc) Thanks [@penalosa](https://github.com/penalosa)! - Add experimental shared local storage, letting several Miniflare instances read and write one set of local resources - - Each instance previously kept its own copy of local state, so two dev sessions pointed at the same KV namespace or D1 database could not see each other's writes. Instances that opt in now elect a single storage owner through the dev registry and route storage through it, so resources with the same ID resolve to the same data. - - Opt in with `unsafeEnableSharedStorage`, which requires three paths to be set: - - ```js - new Miniflare({ - unsafeEnableSharedStorage: true, - // Shared between instances: resources that participate in sharing live here - resourcePersistencePath: "/path/to/shared/state", - // Per project: resources that cannot be shared keep their own state here - isolatedResourcePersistencePath: "/path/to/project/state", - // Instances elect the storage owner through the dev registry - unsafeDevRegistryPath: "/path/to/registry", - // ... - }); - ``` - - KV, D1, R2, Rate Limits, and Secrets Store participate in sharing. Cache, Durable Objects, Workflows, observability, and Hello World storage do not yet, and stay instance-local under `isolatedResourcePersistencePath`, keeping their state across restarts without concurrent access to the shared root. - - This is experimental and the `unsafe`-prefixed options may change without a major version bump. - -- [#15318](https://github.com/cloudflare/workers-sdk/pull/15318) [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Consolidate development-only binding configuration under `dev` - - This experimental configuration now uses `dev.remote` for remote bindings and `dev.connectionString` for Hyperdrive. Miniflare's v5 binding configuration follows the same shape, and R2's local S3 credentials now share the `dev` object. - -### Patch Changes - -- [#15341](https://github.com/cloudflare/workers-sdk/pull/15341) [`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Remove unsupported remote configuration from Workflow bindings - - Miniflare now rejects `dev.remote` on Workflow bindings and no longer exposes or converts the legacy Workflow `remoteProxyConnectionString` option. Workflows always use the local simulator. - -- [#15294](https://github.com/cloudflare/workers-sdk/pull/15294) [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1) 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.20260820.1 | ^5.20260821.1 | - | workerd | 1.20260820.1 | 1.20260821.1 | - -- [#15328](https://github.com/cloudflare/workers-sdk/pull/15328) [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3) 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.20260821.1 | ^5.20260823.1 | - | workerd | 1.20260821.1 | 1.20260824.1 | - -- [#15346](https://github.com/cloudflare/workers-sdk/pull/15346) [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff) 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.20260823.1 | ^5.20260825.1 | - | workerd | 1.20260824.1 | 1.20260825.1 | - -- [#15064](https://github.com/cloudflare/workers-sdk/pull/15064) [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Generate and use production-style Message-IDs for local email artifacts - - Locally sent emails and replies now use generated Message-IDs - which are 36 alphanumeric characters - consistently in returned results, raw MIME headers, Local Explorer records, and stored artifact filenames. User-provided `Message-ID` headers are replaced by the generated ID. - - For example, sending an email from `sender@example.com` may return ``. The raw email uses that same value for its `Message-ID` header, the Local Explorer exposes the same ID, and the stored artifact is named `AbCdEfGhIjKlMnOpQrStUvWxYz0123456789@example.com.eml`. - - Similarly, a reply containing `Message-ID: ` is stored and returned with a newly generated ID instead. This mirrors production behavior and prevents the supplied ID from becoming the local artifact key. - -- [#15316](https://github.com/cloudflare/workers-sdk/pull/15316) [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10) Thanks [@dexvdev](https://github.com/dexvdev)! - Restore cross-process service bindings after a machine wakes from sleep - - Workers running in separate `wrangler dev` or Vite dev sessions now reconnect automatically after the machine wakes. Previously, service bindings could return `Worker "" not found` until the serving process reloaded or restarted. - -- [#15242](https://github.com/cloudflare/workers-sdk/pull/15242) [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575) Thanks [@aesopfrom0](https://github.com/aesopfrom0)! - Shut down `workerd` when Miniflare is terminated with `SIGHUP` - - On `SIGHUP`, Miniflare now stops `workerd` and removes its temporary directory instead of leaving them behind. Previously only `SIGINT` and `SIGTERM` were handled, so tools that embed Miniflare, such as `@cloudflare/vitest-pool-workers` and `@cloudflare/vite-plugin`, could leave a stray process and directory behind on each run. - ## 5.20260820.0-alpha ### Major Changes diff --git a/packages/miniflare/package.json b/packages/miniflare/package.json index f62e4dc0928..18300c4b914 100644 --- a/packages/miniflare/package.json +++ b/packages/miniflare/package.json @@ -1,6 +1,6 @@ { "name": "miniflare", - "version": "5.20260825.0-alpha", + "version": "5.20260820.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 0c22ec4db85..f562b98d2fd 100644 --- a/packages/pages-shared/CHANGELOG.md +++ b/packages/pages-shared/CHANGELOG.md @@ -1,12 +1,5 @@ # @cloudflare/pages-shared -## 0.13.172 - -### Patch Changes - -- Updated dependencies [[`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c), [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1), [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3), [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b), [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a), [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10), [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575), [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c)]: - - miniflare@5.20260825.0-alpha - ## 0.13.171 ### Patch Changes diff --git a/packages/pages-shared/package.json b/packages/pages-shared/package.json index 8d02a34d68e..a6f69363a6e 100644 --- a/packages/pages-shared/package.json +++ b/packages/pages-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/pages-shared", - "version": "0.13.172", + "version": "0.13.171", "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 ea8956ba799..b6eae155d6b 100644 --- a/packages/remote-bindings/CHANGELOG.md +++ b/packages/remote-bindings/CHANGELOG.md @@ -1,14 +1,5 @@ # @cloudflare/remote-bindings -## 0.0.15 - -### Patch Changes - -- Updated dependencies [[`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c), [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1), [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3), [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b), [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a), [`c809851`](https://github.com/cloudflare/workers-sdk/commit/c809851f38f0fe4805e876b6c8bfcd6556f49afb), [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10), [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575), [`a4c3458`](https://github.com/cloudflare/workers-sdk/commit/a4c3458cec77afa31e01d671d6b22ecfcf2c0107), [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c)]: - - miniflare@5.20260825.0-alpha - - @cloudflare/workers-auth@0.6.6 - - @cloudflare/deploy-helpers@0.9.0 - ## 0.0.14 ### Patch Changes diff --git a/packages/remote-bindings/package.json b/packages/remote-bindings/package.json index 26ea855bffb..f54cc4c01e9 100644 --- a/packages/remote-bindings/package.json +++ b/packages/remote-bindings/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/remote-bindings", - "version": "0.0.15", + "version": "0.0.14", "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 17ed44ef6ea..3535fdc791c 100644 --- a/packages/runtime-types/CHANGELOG.md +++ b/packages/runtime-types/CHANGELOG.md @@ -1,12 +1,5 @@ # @cloudflare/runtime-types -## 0.0.17 - -### Patch Changes - -- Updated dependencies [[`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c), [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1), [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3), [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b), [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a), [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10), [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575), [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c)]: - - miniflare@5.20260825.0-alpha - ## 0.0.16 ### Patch Changes diff --git a/packages/runtime-types/package.json b/packages/runtime-types/package.json index 7934921bd3e..47c496f6dda 100644 --- a/packages/runtime-types/package.json +++ b/packages/runtime-types/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/runtime-types", - "version": "0.0.17", + "version": "0.0.16", "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 b67304951f9..fc83e185966 100644 --- a/packages/vite-plugin-cloudflare/CHANGELOG.md +++ b/packages/vite-plugin-cloudflare/CHANGELOG.md @@ -1,23 +1,5 @@ # @cloudflare/vite-plugin -## 1.54.0 - -### Minor Changes - -- [#15134](https://github.com/cloudflare/workers-sdk/pull/15134) [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a) Thanks [@gpanders](https://github.com/gpanders)! - Enable FUSE-capable local container development - - Miniflare now automatically passes the Docker privileges needed for FUSE to local Durable Object containers when using local rootless Docker on Linux with `/dev/fuse` available, or a local Docker engine on macOS or through WSL where Linux containers run in a VM. This applies to Wrangler, the Cloudflare Vite plugin, and direct Miniflare use. - -- [#15326](https://github.com/cloudflare/workers-sdk/pull/15326) [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Record the selected mode in the Build Output Specification top-level `config.json` - - The mode a build was produced in is now written to `.cloudflare/output/v0/config.json` as a `mode` field, alongside the account and compliance settings. - -### Patch Changes - -- Updated dependencies [[`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c), [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1), [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3), [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff), [`d1cc3af`](https://github.com/cloudflare/workers-sdk/commit/d1cc3af5c485030387aa04a533f256924df1ac64), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`daefb3c`](https://github.com/cloudflare/workers-sdk/commit/daefb3cc0f0b884b8ce82b22ed9b67a9c43919be), [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b), [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a), [`ad89456`](https://github.com/cloudflare/workers-sdk/commit/ad894562ce2a0cb5f4a2d540210956e02810a022), [`c809851`](https://github.com/cloudflare/workers-sdk/commit/c809851f38f0fe4805e876b6c8bfcd6556f49afb), [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10), [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575), [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a), [`22182da`](https://github.com/cloudflare/workers-sdk/commit/22182daf4de3f5eed77e87a92eed7cde9937e077), [`a4c3458`](https://github.com/cloudflare/workers-sdk/commit/a4c3458cec77afa31e01d671d6b22ecfcf2c0107), [`d589d30`](https://github.com/cloudflare/workers-sdk/commit/d589d30b567595eacfea50e8810fe67a59b56825), [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c)]: - - miniflare@5.20260825.0-alpha - - wrangler@4.126.0 - ## 1.53.1 ### Patch Changes diff --git a/packages/vite-plugin-cloudflare/package.json b/packages/vite-plugin-cloudflare/package.json index e4f8f700ea6..e2ad6c5a84b 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.54.0", + "version": "1.53.1", "description": "Cloudflare plugin for Vite", "keywords": [ "cloudflare", diff --git a/packages/vitest-plugin/CHANGELOG.md b/packages/vitest-plugin/CHANGELOG.md index bb76612d746..c2bacd59ec8 100644 --- a/packages/vitest-plugin/CHANGELOG.md +++ b/packages/vitest-plugin/CHANGELOG.md @@ -1,40 +1,5 @@ # @cloudflare/vitest-pool-workers -## 1.1.0 - -### Minor Changes - -- [#15117](https://github.com/cloudflare/workers-sdk/pull/15117) [`f0c9c66`](https://github.com/cloudflare/workers-sdk/commit/f0c9c668701c8da8525c335cd99fbf51ff97dbeb) Thanks [@edmundhung](https://github.com/edmundhung)! - Support Workerd's new module registry in Workers Vitest tests - - The pool now follows Workerd's V2 module fallback protocol when `new_module_registry` is selected while retaining the V1 path for `legacy_module_registry`. Tests using the new registry preserve URL-based `import.meta` behavior and load CommonJS dependencies as native CommonJS modules with named exports. - -- [#15272](https://github.com/cloudflare/workers-sdk/pull/15272) [`c921b3f`](https://github.com/cloudflare/workers-sdk/commit/c921b3f3f8e0d16416a12c2be611e0ad9ab75a50) Thanks [@penalosa](https://github.com/penalosa)! - Add an experimental `newConfig` option for loading the Worker's configuration from `cloudflare.config.ts` - - Projects that have migrated to the new TypeScript configuration format had no way to run their Vitest suite against their real bindings, since there was no Wrangler configuration file left to point `wrangler.configPath` at. This adds the missing option, modelled on `@cloudflare/vite-plugin`'s `experimental.newConfig`: - - ```ts - import { cloudflareTest } from "@cloudflare/vitest-plugin"; - import { defineProject } from "vitest/config"; - - export default defineProject({ - plugins: [cloudflareTest({ experimental: { newConfig: true } })], - }); - ``` - - `newConfig: true` loads `cloudflare.config.ts` from the project root; pass `{ configPath: "..." }` to load it from elsewhere. Config functions are called with `ctx.mode` set to Vite's mode, which defaults to `"test"` and can be overridden with `--mode`. `experimental.newConfig` cannot be combined with `wrangler`. - - This is experimental and may change without a major version bump. Wrangler environments, `wrangler.config.ts` tooling configuration, and type generation are not supported yet. - -### Patch Changes - -- [#15293](https://github.com/cloudflare/workers-sdk/pull/15293) [`7a9b8a7`](https://github.com/cloudflare/workers-sdk/commit/7a9b8a72f53d3f8e414e8c05eb460e3e9b4ba249) Thanks [@thatsKevinJain](https://github.com/thatsKevinJain)! - Fix "Network connection lost" when multiple test files use remote bindings - - Remote proxy sessions are shared across pool workers by Wrangler config path, but were disposed during each test file's teardown. Because Vitest starts the next file's worker before the previous one finishes stopping, later files reused an already-disposed session and failed with "Network connection lost". Sessions are now disposed only once the last pool worker stops. - -- Updated dependencies [[`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c), [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1), [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3), [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff), [`d1cc3af`](https://github.com/cloudflare/workers-sdk/commit/d1cc3af5c485030387aa04a533f256924df1ac64), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`daefb3c`](https://github.com/cloudflare/workers-sdk/commit/daefb3cc0f0b884b8ce82b22ed9b67a9c43919be), [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b), [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a), [`ad89456`](https://github.com/cloudflare/workers-sdk/commit/ad894562ce2a0cb5f4a2d540210956e02810a022), [`c809851`](https://github.com/cloudflare/workers-sdk/commit/c809851f38f0fe4805e876b6c8bfcd6556f49afb), [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10), [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575), [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a), [`22182da`](https://github.com/cloudflare/workers-sdk/commit/22182daf4de3f5eed77e87a92eed7cde9937e077), [`a4c3458`](https://github.com/cloudflare/workers-sdk/commit/a4c3458cec77afa31e01d671d6b22ecfcf2c0107), [`d589d30`](https://github.com/cloudflare/workers-sdk/commit/d589d30b567595eacfea50e8810fe67a59b56825), [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c)]: - - miniflare@5.20260825.0-alpha - - wrangler@4.126.0 - ## 1.0.0 ### Major Changes diff --git a/packages/vitest-plugin/package.json b/packages/vitest-plugin/package.json index 9b06c4b4212..b663cbe1a8e 100644 --- a/packages/vitest-plugin/package.json +++ b/packages/vitest-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/vitest-plugin", - "version": "1.1.0", + "version": "1.0.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 772ea45e576..65d7eb8c450 100644 --- a/packages/workers-auth/CHANGELOG.md +++ b/packages/workers-auth/CHANGELOG.md @@ -1,13 +1,5 @@ # @cloudflare/workers-auth -## 0.6.6 - -### Patch Changes - -- [#15320](https://github.com/cloudflare/workers-sdk/pull/15320) [`c809851`](https://github.com/cloudflare/workers-sdk/commit/c809851f38f0fe4805e876b6c8bfcd6556f49afb) Thanks [@Om-singhaI](https://github.com/Om-singhaI)! - Fix `wrangler login --use-keyring` incorrectly reporting that `secret-tool` is missing on Linux - - Libsecret's `secret-tool` does not support `--version`; it prints usage and exits 2, which Wrangler previously interpreted as unavailable. Wrangler now reports it missing only when launching the executable fails. - ## 0.6.5 ### Patch Changes diff --git a/packages/workers-auth/package.json b/packages/workers-auth/package.json index 2b380b256d9..30d23560d85 100644 --- a/packages/workers-auth/package.json +++ b/packages/workers-auth/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/workers-auth", - "version": "0.6.6", + "version": "0.6.5", "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/wrangler/CHANGELOG.md b/packages/wrangler/CHANGELOG.md index ce97407e8c8..e4d7ee815a2 100644 --- a/packages/wrangler/CHANGELOG.md +++ b/packages/wrangler/CHANGELOG.md @@ -1,145 +1,5 @@ # wrangler -## 4.126.0 - -### Minor Changes - -- [#15332](https://github.com/cloudflare/workers-sdk/pull/15332) [`d1cc3af`](https://github.com/cloudflare/workers-sdk/commit/d1cc3af5c485030387aa04a533f256924df1ac64) Thanks [@pombosilva](https://github.com/pombosilva)! - Add `default_retention` to Workflow bindings for configuring how long instances are retained - - Workflow instances are retained for an account-wide default period after they finish. You can now set a per-Workflow default in your Wrangler configuration, applied to instances that do not specify their own retention: - - ```jsonc - { - "workflows": [ - { - "binding": "MY_WORKFLOW", - "name": "my-workflow", - "class_name": "MyWorkflow", - "default_retention": { - "success_retention": "3 days", - "error_retention": "7 days" - } - } - ] - } - ``` - - Each side is optional and accepts either a duration string such as `"3 days"` or a whole number of milliseconds. Durations are interpreted by the Workflows API, which also caps them at your account's retention limit. - -- [#15064](https://github.com/cloudflare/workers-sdk/pull/15064) [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Include a chronological list of handler events in email test harness results, so programmatic local email tests can assert the order in which messages are received, forwarded, replied to, or rejected. - - ```ts - const result = await server.getWorker().email({ - from: "sender@example.com", - to: "inbox@example.com", - raw: [ - "From: Sender ", - "To: Inbox ", - "Message-ID: ", - "Subject: Test email", - "", - "Hello from the test harness", - ].join("\r\n"), - }); - - expect(result.events).toEqual([ - { type: "received", timestamp: expect.any(String) }, - { - type: "forward", - timestamp: expect.any(String), - messageId: expect.any(String), - }, - { - type: "reply", - timestamp: expect.any(String), - messageId: expect.any(String), - }, - ]); - ``` - -- [#15065](https://github.com/cloudflare/workers-sdk/pull/15065) [`ad89456`](https://github.com/cloudflare/workers-sdk/commit/ad894562ce2a0cb5f4a2d540210956e02810a022) Thanks [@mtlemilio](https://github.com/mtlemilio)! - Add experimental `wrangler hyperdrive planetscale signature` for provisioning Cloudflare-billed PlanetScale databases - - `wrangler hyperdrive planetscale signature` prints a signed authorization as JSON, proving to PlanetScale that Cloudflare will be billed for the database you are about to create: - - ```sh - npx wrangler hyperdrive planetscale signature | \ - pscale database create \ - --org \ - --engine postgresql \ - --cloudflare-billing @- \ - --format json - ``` - - `pscale database create` defaults to Vitess, so pass `--engine postgresql` for a Postgres database, and `--format json` is recommended when the output is consumed by an agent. - - This requires `pscale` v0.313.0 or newer. Wrangler authorizes the Cloudflare billing side only, so your PlanetScale credentials stay between you and `pscale`. - - The signature is a cryptographically signed token that authorizes creating a database billed to your Cloudflare account. Treat it as a credential and do not share it. Piping it, as above, is recommended over passing it as a command line argument. - - This command is experimental and its interface may change. - -- [#15134](https://github.com/cloudflare/workers-sdk/pull/15134) [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a) Thanks [@gpanders](https://github.com/gpanders)! - Enable FUSE-capable local container development - - Miniflare now automatically passes the Docker privileges needed for FUSE to local Durable Object containers when using local rootless Docker on Linux with `/dev/fuse` available, or a local Docker engine on macOS or through WSL where Linux containers run in a VM. This applies to Wrangler, the Cloudflare Vite plugin, and direct Miniflare use. - -- [#15326](https://github.com/cloudflare/workers-sdk/pull/15326) [`9fcb1c9`](https://github.com/cloudflare/workers-sdk/commit/9fcb1c9c0a8a0edee04675c4446cd88b34c85b8a) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Record the selected mode in the Build Output Specification top-level `config.json` - - The mode a build was produced in is now written to `.cloudflare/output/v0/config.json` as a `mode` field, alongside the account and compliance settings. - -- [#14966](https://github.com/cloudflare/workers-sdk/pull/14966) [`a4c3458`](https://github.com/cloudflare/workers-sdk/commit/a4c3458cec77afa31e01d671d6b22ecfcf2c0107) Thanks [@yomna-shousha](https://github.com/yomna-shousha)! - Add pull request metadata to `wrangler preview` deployments - - `wrangler preview` now detects the pull request associated with the current CI run (GitHub Actions, GitLab CI, CircleCI, and a generic `PULL_REQUEST_URL`/`PR_URL`/`CHANGE_URL` fallback) and attaches it, along with the repository URL, to the preview deployment as annotations (`workers/pull_request_number`, `workers/pull_request_url`, `workers/repository_url`). - - This is best effort: if no pull request can be detected, nothing changes. When a pull request is detected, its URL is now also shown in the `wrangler preview` command output. - -### Patch Changes - -- [#15294](https://github.com/cloudflare/workers-sdk/pull/15294) [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1) 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.20260820.1 | ^5.20260821.1 | - | workerd | 1.20260820.1 | 1.20260821.1 | - -- [#15328](https://github.com/cloudflare/workers-sdk/pull/15328) [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3) 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.20260821.1 | ^5.20260823.1 | - | workerd | 1.20260821.1 | 1.20260824.1 | - -- [#15346](https://github.com/cloudflare/workers-sdk/pull/15346) [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff) 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.20260823.1 | ^5.20260825.1 | - | workerd | 1.20260824.1 | 1.20260825.1 | - -- [#15246](https://github.com/cloudflare/workers-sdk/pull/15246) [`daefb3c`](https://github.com/cloudflare/workers-sdk/commit/daefb3cc0f0b884b8ce82b22ed9b67a9c43919be) Thanks [@edmundhung](https://github.com/edmundhung)! - Prepare autoconfig for multiple configuration targets - - Add target-specific configuration output and command detection while preserving Wrangler's existing setup and deployment behavior. - -- [#15320](https://github.com/cloudflare/workers-sdk/pull/15320) [`c809851`](https://github.com/cloudflare/workers-sdk/commit/c809851f38f0fe4805e876b6c8bfcd6556f49afb) Thanks [@Om-singhaI](https://github.com/Om-singhaI)! - Fix `wrangler login --use-keyring` incorrectly reporting that `secret-tool` is missing on Linux - - Libsecret's `secret-tool` does not support `--version`; it prints usage and exits 2, which Wrangler previously interpreted as unavailable. Wrangler now reports it missing only when launching the executable fails. - -- [#15336](https://github.com/cloudflare/workers-sdk/pull/15336) [`22182da`](https://github.com/cloudflare/workers-sdk/commit/22182daf4de3f5eed77e87a92eed7cde9937e077) Thanks [@podonnell-dev](https://github.com/podonnell-dev)! - `[private beta]`: Explain unavailable Preview URLs after `wrangler preview` deployments - - When a Preview deployment has no active URLs, Wrangler now explains how to enable Preview Deployments on workers.dev or a custom domain. - -- [#15296](https://github.com/cloudflare/workers-sdk/pull/15296) [`d589d30`](https://github.com/cloudflare/workers-sdk/commit/d589d30b567595eacfea50e8810fe67a59b56825) Thanks [@MattieTK](https://github.com/MattieTK)! - Stop automatically offering to install Cloudflare skills for new users - - Wrangler will no longer prompt new users to install Cloudflare skills after commands complete. It will continue to offer updates to skills that Wrangler previously installed. - -- Updated dependencies [[`aa54b49`](https://github.com/cloudflare/workers-sdk/commit/aa54b491a42c83d410983197b84088dc5319564c), [`4a67a28`](https://github.com/cloudflare/workers-sdk/commit/4a67a2827862a1e09ec341df1930d0a9f88b6fa1), [`2d78137`](https://github.com/cloudflare/workers-sdk/commit/2d7813781e935b171ace346ce322738f1c4048a3), [`04e8564`](https://github.com/cloudflare/workers-sdk/commit/04e856464dfaf094e9b622c9bbf92d871b98f9ff), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`37ed753`](https://github.com/cloudflare/workers-sdk/commit/37ed753470232676a8f8ba4a424d4f73ac58dc5b), [`f76b68e`](https://github.com/cloudflare/workers-sdk/commit/f76b68efd1f1a148b6d96340f3711d3aed52323a), [`c66d2d5`](https://github.com/cloudflare/workers-sdk/commit/c66d2d5303393381632d1ec474b8e7622dafe30a), [`693ca29`](https://github.com/cloudflare/workers-sdk/commit/693ca294baf6419a0c42f267ad28146cd5f43646), [`74de3ab`](https://github.com/cloudflare/workers-sdk/commit/74de3ab56f0dfabfc09da368f3d19eaf82093d10), [`0cb8690`](https://github.com/cloudflare/workers-sdk/commit/0cb86908903b87a742d1786ac8aa5aa9dce6c575), [`dd5148d`](https://github.com/cloudflare/workers-sdk/commit/dd5148d7da11665ad3f3338de338380ccea979cc), [`82d11fc`](https://github.com/cloudflare/workers-sdk/commit/82d11fca0c826ef54000e5fbe1dc87db73a5ef9c)]: - - miniflare@5.20260825.0-alpha - ## 4.125.0 ### Minor Changes diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index b9e3570d2a1..5b7c1ec5fe2 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -1,6 +1,6 @@ { "name": "wrangler", - "version": "4.126.0", + "version": "4.125.0", "description": "Command-line interface for all things Cloudflare Workers", "keywords": [ "assembly",