cloudflare/workers-sdk wrangler@4.104.0
cloudflare/workers-sdk
Captured source
source ↗wrangler@4.104.0
Repository: cloudflare/workers-sdk
Tag: wrangler@4.104.0
Published: 2026-06-23T15:39:52Z
Prerelease: no
Release notes:
Minor Changes
- #14369 `e312dec` Thanks @edmundhung! - Add
getEnv()tocreateTestHarness()Worker handles
Tests can now access the full env object for a Worker with await server.getWorker().getEnv(), including vars, secrets, and bindings.
Patch Changes
- #14364 `a085dec` Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"
The following dependency versions have been updated:
| Dependency | From | To | | ---------- | ------------ | ------------ | | workerd | 1.20260617.1 | 1.20260619.1 |
- #14383 `9a0de8f` Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"
The following dependency versions have been updated:
| Dependency | From | To | | ---------- | ------------ | ------------ | | workerd | 1.20260619.1 | 1.20260621.1 |
- #14397 `fab565f` Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"
The following dependency versions have been updated:
| Dependency | From | To | | ---------- | ------------ | ------------ | | workerd | 1.20260621.1 | 1.20260623.1 |
- #14388 `3f02864` Thanks @petebacondarwin! - Stop erroring when
find_additional_modulesdiscovers a file that only matches a inactive module rule
Module rules assign module _types_ to imported files — they are not include/exclude filters. Also, setting fallthrough: false in a rule will cause subsequent rules to become inactive. Previously, when find_additional_modules walked the filesystem and discovered a file whose only matching rule is inactive, Wrangler would throw an error and fail the build.
This meant that adding a user rule like the one below would break the build for any .txt, .html, .sql, .bin or .wasm file that didn't match the user-supplied globs but lived somewhere under the module root:
// wrangler.json
{
"rules": [
{
"type": "Text",
"globs": ["html/includeme.html"],
"fallthrough": false
}
]
}Discovered files that only match an inactive rule are now silently skipped (a debug-level log records each skip for troubleshooting), so users can use fallthrough: false to narrow the set of files attached to their Worker without having to delete or move untouched files on disk.
The direct-import path is unchanged: importing a file in code that only matches an inactive rule is still a hard error, because the imported file genuinely needs a defined module type.
Fixes #14257.
Both wrangler dev and the Cloudflare Vite plugin no longer force the proxy-everything sidecar image to pull as linux/amd64, allowing Docker to select the native image from the multi-platform manifest. Set MINIFLARE_CONTAINER_EGRESS_IMAGE_PLATFORM to force a specific platform when needed.
- #14362 `2a02858` Thanks @sherryliu-lsy! - Don't require the private credential when reusing an existing Secrets Store secret in
containers registries configure
wrangler containers registries configure now checks whether the target Secrets Store secret already exists before resolving the private credential. When the secret already exists it is reused by reference, so the private credential no longer needs to be supplied (via stdin in non-interactive mode, or via a prompt interactively). This applies to all external registries.
The new-secret path is unchanged: the credential is still required and stored. The only visible interactive change is that the secret prompt now appears last and only when a new secret is being created.
- Updated dependencies [`a085dec`, `9a0de8f`, `fab565f`]:
- miniflare@4.20260623.0
Notability
notability 2.0/10Routine version release of a dev tool.