Conversation
|
LGTM |
Problems
|
074f0fb to
8252cc7
Compare
create-cloudflare
@cloudflare/kv-asset-handler
miniflare
@cloudflare/pages-shared
@cloudflare/unenv-preset
@cloudflare/vite-plugin
@cloudflare/vitest-pool-workers
@cloudflare/workers-editor-shared
wrangler
commit: |
bd53300 to
734a54c
Compare
afd1202 to
ccdba57
Compare
ccdba57 to
abea8e8
Compare
|
Overriding the changeset review here as both noted changesets are acceptable. |
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
create-cloudflare@2.66.0
Minor Changes
#12964
e0831c6Thanks @ryanking13! - Update dependencies in Python workers templatesThe
workers-runtime-sdklibrary is added as a dev dependency and thewebtypyis removed as a dependency.miniflare@4.20260317.3
Minor Changes
#13027
9fcdfcaThanks @G4brym! - feat: Addai_search_namespacesandai_searchbinding typesTwo new binding types for AI Search:
ai_search_namespaces: Namespace binding —namespaceis required and auto-provisioned at deploy time if it doesn't exist (like R2 buckets)ai_search: Single instance binding bound directly to a pre-existing instance in the default namespaceBoth are remote-only in local dev.
#13030
0386553Thanks @natewong1313! - Add local mode support for Stream bindingsMiniflare and
wrangler devnow support using Cloudflare Stream bindings locally.Supported operations:
upload()— upload video via URLvideo(id).details(),.update(),.delete(),.generateToken()videos.list()captions.generate(),.list(),.delete()downloads.generate(),.get(),.delete()watermarks.generate(),.list(),.get(),.delete()The following are not yet supported in local mode and will throw:
createDirectUpload()FileFileData is persisted across restarts by default. You must set
streamPersist: falsein Miniflare options to disable persistence.Patch Changes
#12686
1faff35Thanks @edmundhung! - Move internal proxy endpoint to reserved/cdn-cgi/pathThe internal HTTP endpoint used by
getPlatformProxyhas been moved to a reserved path. This is an internal change with no impact on thegetPlatformProxyAPI.#13080
f4ea4acThanks @penalosa! - fix: glob patterns for module rules no longer match double-extension filenames likefoo.wasm.jsPreviously, the
globsToRegExpshelper compiled glob patterns without a trailing$anchor. This caused patterns like**/*.wasmto match any path containing.wasmas a substring — including filenames such asfoo.wasm.jsormain.wasm.test.ts.When using
@cloudflare/vitest-pool-workerswith awrangler.configPath, Wrangler's defaultCompiledWasmmodule rule (**/*.wasm) was silently applied to test files whose names contained.wasm, causing them to be loaded as WebAssembly binaries instead of JavaScript and failing at runtime.The fix restores the
$end anchor in the compiled regex so that**/*.wasmonly matches paths that literally end in.wasm, while the leading^remains absent to allow matching anywhere within an absolute path.wrangler@4.78.0
Minor Changes
#13031
eeaa473Thanks @WalshyDev! - Add support for Cloudflare Access Service Token authentication via environment variablesWhen running
wrangler devwith remote bindings behind a Cloudflare Access-protected domain, Wrangler previously requiredcloudflared access loginwhich opens a browser for interactive authentication. This does not work in CI/CD environments.You can now set the
CLOUDFLARE_ACCESS_CLIENT_IDandCLOUDFLARE_ACCESS_CLIENT_SECRETenvironment variables to authenticate using an Access Service Token instead:Additionally, when running in a non-interactive environment (CI) without these credentials, Wrangler now throws a clear, actionable error instead of hanging on
cloudflared access login.#13027
9fcdfcaThanks @G4brym! - feat: Addai_search_namespacesandai_searchbinding typesTwo new binding types for AI Search:
ai_search_namespaces: Namespace binding —namespaceis required and auto-provisioned at deploy time if it doesn't exist (like R2 buckets)ai_search: Single instance binding bound directly to a pre-existing instance in the default namespaceBoth are remote-only in local dev.
#12874
53ed15aThanks @xortive! - Add Workers VPC service support for Hyperdrive originsHyperdrive configs can now connect to databases through Workers VPC services using the
--service-idoption:This enables Hyperdrive to connect to databases hosted in private networks that are accessible through Workers VPC TCP services.
#12852
6b50bfaThanks @Carolx715! - Add interactive data catalog validation to R2 object and lifecycle commands.When performing R2 operations that could affect data catalog state (object put, object delete, lifecycle add, lifecycle set), Wrangler now validates with the API and prompts users for confirmation if a conflict is detected. For bulk put operations, Wrangler prompts upfront before starting the batch. Users can bypass prompts with
--force(-y). In non-interactive/CI environments, the operation proceeds automatically.#13030
0386553Thanks @natewong1313! - Add local mode support for Stream bindingsMiniflare and
wrangler devnow support using Cloudflare Stream bindings locally.Supported operations:
upload()— upload video via URLvideo(id).details(),.update(),.delete(),.generateToken()videos.list()captions.generate(),.list(),.delete()downloads.generate(),.get(),.delete()watermarks.generate(),.list(),.get(),.delete()The following are not yet supported in local mode and will throw:
createDirectUpload()FileFileData is persisted across restarts by default. You must set
streamPersist: falsein Miniflare options to disable persistence.#12874
53ed15aThanks @xortive! - Add--cert-verification-modeoption towrangler vpc service createandwrangler vpc service updateYou can now configure the TLS certificate verification mode when creating or updating a VPC connectivity service. This controls how the connection to the origin server verifies TLS certificates.
Available modes:
verify_full(default) -- verify certificate chain and hostnameverify_ca-- verify certificate chain only, skip hostname checkdisabled-- do not verify the server certificate at allThis applies to both TCP and HTTP VPC service types. When omitted, the default
verify_fullbehavior is used.#12874
53ed15aThanks @xortive! - Add TCP service type support for Workers VPCYou can now create TCP services in Workers VPC using the
--type tcpoption:This enables exposing TCP-based services like PostgreSQL, MySQL, and other database servers through Workers VPC.
Patch Changes
#13039
bc24ec8Thanks @petebacondarwin! - fix: Angular auto-config now correctly handles projects without SSR configuredPreviously, running
wrangler deploy(orwrangler setup) on a plain Angular SPA (created withng newwithout--ssr) would crash withCannot set properties of undefined (setting 'experimentalPlatform'), because the auto-config code unconditionally assumed SSR was configured.Angular projects without SSR are now treated as assets-only deployments: no
wrangler.jsoncmainentry is generated,angular.jsonis not modified, nosrc/server.tsis created, and no extra dependencies are installed.#13036
0b4c21aThanks @pbrowne011! - Fixwrangler deploy --dry-runskipping asset build-artifact validation checksPreviously,
--dry-runskipped the entire asset sync step, which meant it also skipped validation that runs during asset manifest building. This included the check that errors when a_worker.jsfile or directory would be uploaded as a public static asset (which can expose private server-side code), as well as the per-file size limit check.With this fix,
--dry-runnow runsbuildAssetManifestagainst the asset directory when assets are configured, performing the same file-system validation as a real deploy without uploading anything or making any API calls.#13061
535582dThanks @petebacondarwin! - fix: resolve secondary worker types when environment overrides the worker name in multi-worker type generationWhen running
wrangler typeswith multiple-cconfig flags and the secondary worker has named environments that override the worker name (e.g. a worker nameddo-workerwith envstagingwhose effective name becomesdo-worker-staging), service bindings and Durable Object bindings in the primary worker that referencedo-worker-stagingnow correctly resolve to the typed entry point instead of falling back to an unresolved comment type such asDurableObjectNamespace /* MyClass from do-worker-staging */.The fix extends the secondary entries map to also register environment-specific worker names, so that lookups by the env-qualified name (e.g.
do-worker-staging) resolve to the same source file as the base worker name.#13058
992f9a3Thanks @petebacondarwin! - fix: patch undici to prevent fetch() throwing on 401 responses with a request bodyFetching with a request body (string, JSON, FormData, etc.) to an endpoint that returns a 401 would throw
TypeError: fetch failedwith causeexpected non-null body source. This affectedUnstable_DevWorker.fetch()and any other use of undici's fetch in wrangler.The root cause is
isTraversableNavigable()in undici returningtrueunconditionally, causing the 401 credential-retry logic to run in Node.js where it should never apply (there is no browser UI to prompt for credentials). This is tracked upstream in nodejs/undici#4910. Until an upstream fix is released, we apply a patch to undici that returnsfalsefromisTraversableNavigable().#13017
91b7f73Thanks @petebacondarwin! - fix: prevent Docker container builds from spawning console windows on WindowsOn Windows,
detached: trueinchild_process.spawn()gives each child process its own visible console window, causing many windows to flash open duringwrangler deploywith[[containers]]. Thedetachedoption is now only set on non-Windows platforms (where it is needed for process group cleanup), andwindowsHide: trueis added to further suppress console windows on Windows.#12996
f6cdab2Thanks @guybedford! - Fix source phase imports in bundled and non-bundled WorkersWrangler now preserves
import sourcesyntax when it runs esbuild, including module format detection and bundled deploy output. This fixes both--no-bundleand bundled deployments for Workers that import WebAssembly using source phase imports.#12931
ce65246Thanks @dario-piotrowicz! - Improve error message when modules cannot be resolved during bundlingWhen a module cannot be resolved during bundling, Wrangler now suggests using the
aliasconfiguration option to substitute it with an alternative implementation. This replaces esbuild's default suggestion to "mark the path as external", which is not a supported option in Wrangler.For example, if you try to import a module that doesn't exist:
Wrangler will now suggest:
This provides actionable guidance for resolving import errors.
#13049
7a5be20Thanks @nikitassharma! - add library-push flag to containers registries credentialsThis flag is not available for public use.
#13018
9c5ebf5Thanks @tgarg-cf! - Validate that queue consumers in wrangler config only use the "worker" typePreviously, non-worker consumer types (e.g.
http_pull) could be specified in thequeues.consumersconfig. Now, wrangler will error if a consumertypeother than"worker"is specified in the config file.To configure non-worker consumer types, use the
wrangler queues consumerCLI commands instead (e.g.wrangler queues consumer http-pull add).Updated dependencies [
9fcdfca,1faff35,f4ea4ac,0386553]:@cloudflare/pages-shared@0.13.119
Patch Changes
9fcdfca,1faff35,f4ea4ac,0386553]:@cloudflare/vite-plugin@1.30.2
Patch Changes
#12953
80b093eThanks @jamesopstad! - FixCannot perform I/O on behalf of a different requesterrors for deferred dynamic importsConcurrent requests that loaded the same dynamic import were previously sharing the same promise to resolve it in a Worker context. We now ensure that all imports execute within a Durable Object's IoContext before the result is returned to the Worker.
Updated dependencies [
eeaa473,9fcdfca,bc24ec8,1faff35,0b4c21a,535582d,992f9a3,f4ea4ac,91b7f73,f6cdab2,53ed15a,ce65246,7a5be20,6b50bfa,0386553,9c5ebf5,53ed15a,53ed15a]:@cloudflare/vitest-pool-workers@0.13.5
Patch Changes
#13077
11c77b7Thanks @penalosa! - fix:runInDurableObjectnow correctly returns redirect responses (3xx) from Durable Object callbacks instead of throwing "Expected callback for X" errors#13056
8384743Thanks @penalosa! - fix: Support dynamicimport()inside entrypoint and Durable Object handlersPreviously, calling
exports.default.fetch()orSELF.fetch()on a worker whose handler used a dynamicimport()would hang and fail with "Cannot perform I/O on behalf of a different Durable Object". This happened because the module runner's transport — which communicates over a WebSocket owned by the runner Durable Object — was invoked from a different DO context.The fix patches the module runner's transport via the
onModuleRunnerhook so that allinvoke()calls are routed through the runner DO's I/O context, regardless of where theimport()originates.#13074
4618c05Thanks @penalosa! - fix: only apply module fallback extension probing forrequire(), notimportThe module fallback service previously tried adding
.js,.mjs,.cjs, and.jsonsuffixes to extensionless specifiers unconditionally. Per the Node.js spec, this extension-probing behaviour is specific to CommonJSrequire(). ESMimportstatements must include explicit file extensions.Extension-less TypeScript
importspecifiers continue to work correctly — they are resolved by Vite's resolver rather than the fallback's extension loop.#13073
baec845Thanks @penalosa! - AddadminSecretsStore()tocloudflare:testfor seeding secrets in testsSecrets store bindings only expose a read-only
.get()method, so there was previously no way to seed secret values from within a test. The newadminSecretsStore()helper returns Miniflare's admin API for a secrets store binding, giving tests full control over create, update, and delete operations.#13083
cfd513fThanks @penalosa! - Add a 30-second timeout towaitUntilpromise draining to prevent hanging testsPreviously, if a
ctx.waitUntil()promise never resolved, the test suite would hang indefinitely after the test file finished. Now, anywaitUntilpromises that haven't settled within 30 seconds are abandoned with a warning, allowing the test suite to continue. This aligns with the productionwaitUntillimit.Updated dependencies [
eeaa473,9fcdfca,bc24ec8,1faff35,0b4c21a,535582d,992f9a3,f4ea4ac,91b7f73,f6cdab2,53ed15a,ce65246,7a5be20,6b50bfa,0386553,9c5ebf5,53ed15a,53ed15a]:@cloudflare/workers-utils@0.14.0
Minor Changes
#13027
9fcdfcaThanks @G4brym! - feat: Addai_search_namespacesandai_searchbinding typesTwo new binding types for AI Search:
ai_search_namespaces: Namespace binding —namespaceis required and auto-provisioned at deploy time if it doesn't exist (like R2 buckets)ai_search: Single instance binding bound directly to a pre-existing instance in the default namespaceBoth are remote-only in local dev.
Patch Changes
#13018
9c5ebf5Thanks @tgarg-cf! - Validate that queue consumers in wrangler config only use the "worker" typePreviously, non-worker consumer types (e.g.
http_pull) could be specified in thequeues.consumersconfig. Now, wrangler will error if a consumertypeother than"worker"is specified in the config file.To configure non-worker consumer types, use the
wrangler queues consumerCLI commands instead (e.g.wrangler queues consumer http-pull add).@cloudflare/containers-shared@0.13.1
Patch Changes
#13049
7a5be20Thanks @nikitassharma! - add library-push flag to containers registries credentialsThis flag is not available for public use.