Structural Comparison Matrix
| # | Change | Version | Type | Applies to you if… |
|---|---|---|---|---|
| 1 | Service environments removed | 4.111.0 | Breaking | Your config uses legacy_env or [env.*] blocks |
| 2 | wrangler.toml vs jsonc precedence | n/a (ongoing) | Config hazard | You have both a wrangler.toml and wrangler.jsonc in the same project |
| 3 | containerEngine dropped from Miniflare worker options | 4.117.0 | Breaking (API) | You call unstable_getMiniflareWorkerOptions() directly in a custom test harness |
| 4 | cloudflare.config.ts gains a settings export | 4.113.0 | Config shape | You use the experimental cloudflare.config.ts format |
| 5 | Local dev observability on by default | 4.114.0 / 4.118.0 | Behavior default | You run wrangler dev or the Cloudflare Vite plugin |
| 6 | wrangler check startup graduates from alpha | 4.116.0 | New capability | You want real bundle-size numbers before deploying |
| 7 | Naming prompts skipped in non-interactive deploys | 4.116.0 | Fix | You deploy via CI or an AI agent driving the CLI |
| 8 | r2_buckets local dev credentials | 4.115.0 | New config option | You test R2 bindings locally |
| 9 | VPC bindings .connect() works in local dev | 4.115.0 | New capability | You use VPC Network/Service bindings and previously had to stub .connect() |
| 10 | wrangler login supports OAuth Device Grant | 4.119.0 | New capability | You authenticate from a headless/SSH/remote environment |
Every row above is confirmed against the real cloudflare/workers-sdk changelog entry for its version, not summarized from memory. Full mechanism, exact error text, and the fix live in each linked post.
The 10 changes, in detail
- Wrangler Removes Service Environments (v4.111.0): the one hard breaking change.
legacy_envis gone; every environment now deploys as its own independent Worker. - Fix Wrangler wrangler.toml vs jsonc Precedence: Wrangler accepts both formats with no enforced precedence rule and no migration command. This site’s own config hit this directly.
- Wrangler 4.117 Drops containerEngine From Miniflare: a custom Vitest harness reading
containerEngineoff the old worker-options shape now silently getsundefined. - Wrangler’s New cloudflare.config.ts settings Export: account-level settings need a dedicated
settingsexport now, or they stop applying silently. - Wrangler Now Traces Local Dev by Default (v4.118):
wrangler devcaptures request traces automatically, which can conflict with multi-process dev-registry setups. - Check Worker Bundle Size With wrangler check startup: no longer alpha-gated, and now reports real bundle size before you deploy.
- Wrangler Skips Naming Prompts in Agent/CI Deploys: fixes a real blocker for non-interactive CI pipelines and AI coding agents driving the CLI.
- New r2_buckets Local Dev Credentials in Wrangler: a dedicated config key to scope credentials to local R2 testing instead of faking it or sharing production-adjacent access.
- VPC Bindings Now Connect in Wrangler Local Dev:
.connect()on VPC bindings finally works locally instead of requiring a stub. - Wrangler Login Now Supports OAuth Device Grant: authenticate from a headless terminal with no local browser required.
Why this happened in one month
Cloudflare ships Wrangler on a near-weekly cadence, and July 2026 concentrated an unusual amount of structural churn into a five-week window: one deliberate breaking change (service environments), plus a cluster of local-dev tooling upgrades (observability, R2 credentials, VPC bindings) that all landed within days of each other. None of these are speculative. Every version number and change description above is drawn directly from cloudflare/workers-sdk’s own packages/wrangler/CHANGELOG.md, cross-checked against the release dates in that same file.
Browse the rest of the Dev Tools archive for more Cloudflare Workers and CLI coverage.







