Minor Changes
-
#14995
59872c4Thanks @ThomasRubini! - Addconnecttrigger for raw socketsYou can now configure a Worker to receive raw socket connections during
wrangler dev, delivered directly to the Worker'sconnect(socket, env, ctx)handler:Each entry opens a listening socket on
127.0.0.1(or the givenaddress) that forwards incoming connections straight to the Worker, bypassing the local dev HTTP entry point. This requires theexperimentalcompatibility flag. Only"tcp"is supported at the moment.@cloudflare/configalso supports declaring this trigger viatriggers.connect(...), which lowers to theconnectfield above:import { defineWorker, triggers } from "@cloudflare/config"; export default defineWorker({ triggers: [ triggers.connect({ protocol: "tcp", port: 5432, address: "127.0.0.1" }), ], });
-
#15172
c68f9cbThanks @WillTaylorDev! - Add container support to worker previewsWorker previews now support containers through a new
previews.containersconfiguration block. Container configuration doesn't inherit, so declare containers explicitly in thepreviewsblock to enable them for previews. This mirrors howpreviews.durable_objectsworks today. Wrangler names each preview container application{worker_name}_{preview_slug}_{class_name}, normalising and shortening the result to what the API accepts. Either change appends a short digest of the composed name, so two names that would otherwise land on one stay distinct. An entry cannot set its ownname, because application names are unique to an account and a fixed name would collide between two previews of the same Worker. A Durable Object class is backed by at most one container application, so the validator rejects two entries that share aclass_name. Wrangler skips container applications bound to Durable Object classes that another Worker implements throughscript_name, because the implementing Worker owns its own container application. A binding is not required: a Durable Object declared throughmigrationsorexportsand reached only overctx.exportscan still back a container. Every entry must setclass_name. Apreviews.containersentry whoseclass_namematches no Durable Object class at all is rejected before the preview deployment is created, so a typo fails loudly instead of producing a preview with no container.Wrangler creates the container applications on
wrangler preview. Deleting a preview tears them down server side, sowrangler preview deletedoesn't remove them.Container build and deploy progress prints to stdout.
wrangler preview --jsonsuppresses wrangler's own output so it doesn't interleave with the payload, and warnings and errors still go to stderr. Docker's build output and the progress spinner write to stdout directly and bypass that suppression, so parse--jsonfrom a non interactive shell, where the spinner is skipped, and prefer a prebuiltimageover a Dockerfile.
Patch Changes
-
#15251
5c10e39Thanks @dario-piotrowicz! - Fix ESM-only packages missing from deploy metadataESM-only package dependencies (such as
@cloudflare/think) were silently omitted from the package dependency metadata reported duringwrangler deployandwrangler versions upload. These packages are now correctly detected and included. -
#15284
39dcea6Thanks @emily-shen! - Move deploy output writing into shared deploy helpers
{ "connect": [{ "protocol": "tcp", "port": 5432 }] }