Skip to content

Bump the workerd-and-workers-types group across 1 directory with 2 updates - #15123

Open
dependabot[bot] wants to merge 9 commits into
mainfrom
dependabot/npm_and_yarn/workerd-and-workers-types-95e8275c49
Open

Bump the workerd-and-workers-types group across 1 directory with 2 updates#15123
dependabot[bot] wants to merge 9 commits into
mainfrom
dependabot/npm_and_yarn/workerd-and-workers-types-95e8275c49

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 11, 2026

Copy link
Copy Markdown
Contributor

Bumps the workerd-and-workers-types group: workerd 1.20260804.1 → 1.20260811.1 and @cloudflare/workers-types 4.20260702.1 → 5.20260811.1.

(The dependabot details below quote 1.20260808.1/5.20260808.1. The types entry is a caret range, so it had already resolved to 5.20260811.1 in the lockfile while workerd stayed pinned to 1.20260808.1; the two are released in lockstep, so both are now on 1.20260811.1/5.20260811.1. The nodejs_compat enable dates are unchanged in that release.)

This bump is not self-contained, so it carries the changes needed to make the repo work against the new runtime.

nodejs_compat is now on by default

workerd now marks both nodejs_compat and nodejs_compat_v2 as enabled by default from compatibility date 2026-08-04 onwards, and rejects a config that specifies a flag its compatibility date already enables:

The compatibility flag nodejs_compat_v2 became the default as of 2026-08-04 so does not need to be specified anymore.

getNodeCompat() in Miniflare only ever treated Node.js compatibility as enabled when a flag was listed explicitly, so for those dates it reported that there was no Node.js compatibility at all. Consequences:

  • @cloudflare/vitest-pool-workers added a redundant nodejs_compat_v2 to its runner worker, which workerd then rejected. This is the visible failure — it defaults the compatibility date to today's date, so it broke as soon as the runtime was bumped, without anyone changing a config.
  • Wrangler would have skipped its unenv polyfills, and the Vite plugin would have substituted process.env with an empty object.

getNodeCompat() now resolves both flags the way workerd does, and honours no_nodejs_compat, which it previously ignored entirely. The date lives in one place, as NODEJS_COMPAT_DEFAULT_ON_DATE in @cloudflare/workers-utils.

There were no tests for getNodeCompat() before; there are now 17 covering the flag/date matrix.

Generated and existing configs

For the same reason, create-cloudflare and wrangler setup no longer add nodejs_compat next to a compatibility date that already enables it — otherwise every newly scaffolded project fails to start. Six C3 templates and the repo's own configs that paired the flag with such a date are updated too.

Two follow-ups in C3, both found by Devin on this PR: it removes the flag when a template or a framework's own scaffolder already wrote it next to such a date, and it no longer relies on that flag to decide whether a project needs @types/node (which would otherwise have quietly cost every new TypeScript project its Node.js typings). The flag resolution now lives in @cloudflare/workers-utils as resolveNodejsCompat(), shared with Miniflare instead of duplicated.

Tooling deliberately does not strip a redundant flag from user config. The compatibility date is the opt-in, so workerd's error is the correct signal, and the changeset documents the one-line fix. Worth noting the blast radius is wider than local dev: the control plane runs the same validation, so an existing Worker with nodejs_compat will be rejected by wrangler deploy the first time it bumps its compatibility date past 2026-08-04.

Known issues, tracked separately

Devin raised three findings against the other commits already on this branch. They are split out so this bump is not held up by them:

@cloudflare/workers-types v5

The types major adds the Node.js compatibility globals it did not cover before, including process. Like every other ambient global it declares, process is a const, so TypeScript no longer treats it as a property of typeof globalThis, and globalThis.process = process in the pages-nodejs-v2-compat fixture stopped type checking. That assignment is there to check the assignment does not produce a build time error, so it is kept as-is and the type error is silenced, preserving the bundler coverage.


  • Tests
    • Tests included/updated
    • Automated tests not possible - manual testing has been completed as follows:
    • Additional testing not necessary because:
  • Public documentation
    • Cloudflare docs PR(s):
    • Documentation not necessary because: the behaviour change is workerd's, not this repo's — this PR only aligns the tooling with it. Any docs that recommend adding nodejs_compat are stale as a result of the runtime change and are owned by it.

Original dependabot description

Bumps the workerd-and-workers-types group with 2 updates in the / directory: @cloudflare/workers-types and workerd.

Updates @cloudflare/workers-types from 4.20260702.1 to 5.20260808.1

Commits

Updates workerd from 1.20260804.1 to 1.20260808.1

Release notes

Sourced from workerd's releases.

v1.20260808.1

What's Changed

Full Changelog: cloudflare/workerd@v1.20260807.2...v1.20260808.1

v1.20260807.2

What's Changed

Full Changelog: cloudflare/workerd@v1.20260807.1...v1.20260807.2

v1.20260807.1

What's Changed

Full Changelog: cloudflare/workerd@v1.20260806.1...v1.20260807.1

v1.20260806.1

Full Changelog: cloudflare/workerd@v1.20260805.1...v1.20260806.1

v1.20260805.1

What's Changed

Full Changelog: cloudflare/workerd@v1.20260804.1...v1.20260805.1

Commits
  • a955a87 Release 2026-08-08
  • a861db3 Merge pull request #6934 from cloudflare/harris/2026-08-07-reland-vuln-187
  • 5d701d3 Merge pull request #6931 from cloudflare/jasnell/writer-kj-ptr
  • a5ce01f Merge pull request #6930 from cloudflare/kenton/enable-ctx-abort
  • 8d45594 attempt to fix release (#6933)
  • 322d59b Make ctx.abort() (for stateless workers) non-experimental.
  • adb9a5d Do not pass raw reference over Writer attach
  • c317b59 Use kj::Ptr<Writer> instead of Writer&
  • e7b2192 Fix issue where IoContext could be aborted while waiting for lock.
  • 5374389 Merge pull request #6929 from cloudflare/maizatskyi/2026-08-07-upstream
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

@dependabot dependabot Bot added ci:skip-pr-description-validation Skip validation of the required PR description format dependencies Used by dependabot to mark PRs as updates to dependencies. package:miniflare Relating to Miniflare labels Aug 11, 2026
@dependabot
dependabot Bot requested a review from workers-devprod as a code owner August 11, 2026 06:06
@dependabot dependabot Bot added package:miniflare Relating to Miniflare dependencies Used by dependabot to mark PRs as updates to dependencies. ci:skip-pr-description-validation Skip validation of the required PR description format labels Aug 11, 2026
@changeset-bot

changeset-bot Bot commented Aug 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f141cd8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
miniflare Minor
wrangler Minor
@cloudflare/vitest-pool-workers Patch
@cloudflare/autoconfig Patch
create-cloudflare Patch
@cloudflare/vite-plugin Minor
@cloudflare/workers-utils Minor
@cloudflare/deploy-helpers Patch
@cloudflare/pages-shared Patch
@cloudflare/remote-bindings Patch
@cloudflare/runtime-types Patch
@cloudflare/cli-shared-helpers Patch
@cloudflare/workers-auth Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-project-automation github-project-automation Bot moved this to Untriaged in workers-sdk Aug 11, 2026
@workers-devprod
workers-devprod requested review from a team and jamesopstad and removed request for a team August 11, 2026 06:07
@workers-devprod

workers-devprod commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Codeowners approval required for this PR:

  • @cloudflare/workflows
  • ✅ @cloudflare/wrangler
Show detailed file reviewers
  • packages/workflows-shared/src/binding.ts: [@cloudflare/workflows]

devin-ai-integration[bot]

This comment was marked as resolved.

@github-actions
github-actions Bot enabled auto-merge (squash) August 11, 2026 06:10
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

✅ All changesets look good

@github-actions
github-actions Bot disabled auto-merge August 11, 2026 08:31
devin-ai-integration[bot]

This comment was marked as resolved.

@dario-piotrowicz
dario-piotrowicz force-pushed the dependabot/npm_and_yarn/workerd-and-workers-types-95e8275c49 branch from 5f671b8 to 0839886 Compare August 11, 2026 08:33
devin-ai-integration[bot]

This comment was marked as resolved.

@dario-piotrowicz
dario-piotrowicz force-pushed the dependabot/npm_and_yarn/workerd-and-workers-types-95e8275c49 branch from 0839886 to 73b6f5e Compare August 11, 2026 09:17
@workers-devprod
workers-devprod requested a review from a team August 11, 2026 09:18
@pkg-pr-new

pkg-pr-new Bot commented Aug 11, 2026

Copy link
Copy Markdown
@cloudflare/autoconfig

npm i https://pkg.pr.new/@cloudflare/autoconfig@15123

@cloudflare/build-output-utils

npm i https://pkg.pr.new/@cloudflare/build-output-utils@15123

@cloudflare/config

npm i https://pkg.pr.new/@cloudflare/config@15123

create-cloudflare

npm i https://pkg.pr.new/create-cloudflare@15123

@cloudflare/deploy-helpers

npm i https://pkg.pr.new/@cloudflare/deploy-helpers@15123

@cloudflare/kv-asset-handler

npm i https://pkg.pr.new/@cloudflare/kv-asset-handler@15123

miniflare

npm i https://pkg.pr.new/miniflare@15123

@cloudflare/pages-functions

npm i https://pkg.pr.new/@cloudflare/pages-functions@15123

@cloudflare/pages-shared

npm i https://pkg.pr.new/@cloudflare/pages-shared@15123

@cloudflare/unenv-preset

npm i https://pkg.pr.new/@cloudflare/unenv-preset@15123

@cloudflare/vite-plugin

npm i https://pkg.pr.new/@cloudflare/vite-plugin@15123

@cloudflare/vitest-pool-workers

npm i https://pkg.pr.new/@cloudflare/vitest-pool-workers@15123

@cloudflare/workers-auth

npm i https://pkg.pr.new/@cloudflare/workers-auth@15123

@cloudflare/workers-editor-shared

npm i https://pkg.pr.new/@cloudflare/workers-editor-shared@15123

@cloudflare/workers-utils

npm i https://pkg.pr.new/@cloudflare/workers-utils@15123

wrangler

npm i https://pkg.pr.new/wrangler@15123

commit: f141cd8

devin-ai-integration[bot]

This comment was marked as resolved.

dependabot Bot and others added 4 commits August 11, 2026 20:48
…dates

Bumps the workerd-and-workers-types group with 2 updates in the / directory: [@cloudflare/workers-types](https://github.com/cloudflare/workerd) and [workerd](https://github.com/cloudflare/workerd).

Updates `@cloudflare/workers-types` from 4.20260702.1 to 5.20260808.1
- [Release notes](https://github.com/cloudflare/workerd/releases)
- [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md)
- [Commits](https://github.com/cloudflare/workerd/commits)

Updates `workerd` from 1.20260804.1 to 1.20260808.1
- [Release notes](https://github.com/cloudflare/workerd/releases)
- [Changelog](https://github.com/cloudflare/workerd/blob/main/RELEASE.md)
- [Commits](cloudflare/workerd@v1.20260804.1...v1.20260808.1)

---
updated-dependencies:
- dependency-name: "@cloudflare/workers-types"
  dependency-version: 5.20260808.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: workerd-and-workers-types
- dependency-name: workerd
  dependency-version: 1.20260808.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: workerd-and-workers-types
...

Signed-off-by: dependabot[bot] <support@github.com>
The following dependency versions have been updated:

| Dependency                | From          | To            |
| ------------------------- | ------------- | ------------- |
| @cloudflare/workers-types | ^5.20260804.1 | ^5.20260808.1 |
| workerd                   | 1.20260804.1  | 1.20260808.1  |
…eBatch()`

The updated `@cloudflare/workers-types` now requires `delete()` on workflow instances and `deleteBatch()` on the workflow binding. These methods are now implemented in the local workflows simulator so that local dev and tests match the production API.
workerd now enables the `nodejs_compat` and `nodejs_compat_v2` flags by
default for compatibility dates of 2026-08-04 or later, and rejects configs
that also specify a flag its compatibility date already enables.

`getNodeCompat()` only treated Node.js compatibility as enabled when a flag
was listed explicitly, so it reported no Node.js compatibility for such dates.
That made `@cloudflare/vitest-pool-workers` add a redundant `nodejs_compat_v2`
to its runner worker, which workerd then rejected, and would also have skipped
Wrangler's unenv polyfills and substituted `process.env` with an empty object
in the Vite plugin. It now resolves both flags the way workerd does, and
honours `no_nodejs_compat`.

For the same reason `create-cloudflare` and `wrangler setup` no longer add
`nodejs_compat` alongside the compatibility date they generate, and the repo's
own configurations that paired the flag with such a date are updated.
`@cloudflare/workers-types` v5 declares the Node.js compatibility globals it
did not cover before, including `process`. Like the other ambient globals it
declares, `process` is a `const`, so TypeScript no longer treats it as a
property of `typeof globalThis` and the fixture's `globalThis.process = process`
fails to type check.

That assignment is deliberate: it is there to check that assigning to
`globalThis.process` does not produce a *build* time error. Keep it as it is and
silence the type error instead, so the bundler coverage is preserved.
@petebacondarwin
petebacondarwin force-pushed the dependabot/npm_and_yarn/workerd-and-workers-types-95e8275c49 branch from 73b6f5e to bea06a7 Compare August 11, 2026 21:12
devin-ai-integration[bot]

This comment was marked as resolved.

@petebacondarwin
petebacondarwin requested review from dario-piotrowicz and removed request for jamesopstad August 11, 2026 21:16
The `@cloudflare/workers-types` catalog entry is a caret range, so it had
already resolved to 5.20260811.1 in the lockfile while `workerd` stayed pinned
to 1.20260808.1. The two are released in lockstep, so line them up.

The `nodejs_compat` and `nodejs_compat_v2` enable dates are unchanged in this
release, and no other compatibility flag gained a 2026-08 enable date, so the
Node.js compatibility work in this PR is unaffected.
…date

Two things in C3 still keyed off the presence of the `nodejs_compat` flag,
which is no longer written when the compatibility date already enables it:

- `maybeInstallNodeTypes()` decided whether to install `@types/node` and add
  `node` to the project's `tsconfig.json` from the flag alone, so newly
  scaffolded TypeScript projects silently lost their Node.js typings.
- The flag was only ever added, never removed, so one that a template or a
  framework's own scaffolder had already written survived next to a
  compatibility date that enables it, which workerd rejects.

The flag resolution itself moves to `@cloudflare/workers-utils` as
`resolveNodejsCompat()` so that C3 and Miniflare share one implementation
rather than each having their own.

Reported by Devin on #15123.

@petebacondarwin petebacondarwin left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The majority of this PR was driven by Opus but I have read through all the code and claim it is acceptable. Another PR reviewer would be ideal though.

…mpat flag

`wrangler types` decides whether to suggest installing `@types/node` from the
resolved Node.js compatibility mode, which is now also enabled by a recent
enough compatibility date. The message still claimed the suggestion was because
"you have the `nodejs_compat` flag", which it now prints for Workers that do
not set that flag at all.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 new potential issue.

View 7 additional findings in Devin Review.

Open in Devin Review

Comment on lines +276 to +279
if (flags.length === 0) {
const { compatibility_flags: _removed, ...rest } = wranglerConfig;
return rest;
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔴 Setup can leave a project with a Node.js flag its date already enables, so the project fails to start

When no other compatibility flags remain, the whole flag list is dropped from the new configuration (const { compatibility_flags: _removed, ...rest } at packages/autoconfig/src/run.ts:277) instead of being written as an empty list, so an existing nodejs_compat written earlier by a framework's own scaffolder survives next to the freshly written date and the runtime rejects the project.

Impact: A project set up by wrangler setup can refuse to start or deploy with an error about the Node.js flag no longer needing to be specified.

Merge order in saveWranglerJsonc preserves the stale flag

runAutoConfig() always writes today's compatibility date (packages/autoconfig/src/run.ts:95), which is on or after NODEJS_COMPAT_DEFAULT_ON_DATE, so ensureNodejsCompatIsEnabled() strips every nodejs_* flag and, when nothing else is left, returns the config object without a compatibility_flags key.

saveWranglerJsonc() then merges { ...existingWranglerConfig, ...wranglerConfig } (packages/autoconfig/src/run.ts:306-316), where existingWranglerConfig is the wrangler.json(c) that the framework's configure() step may have just written. Because the key is absent from the new object, the pre-existing "compatibility_flags": ["nodejs_compat"] is kept, while compatibility_date is overwritten with today's date — exactly the combination workerd rejects.

Previously the function always emitted a compatibility_flags array, so the merge always overrode the existing value. The regression only manifests in the "nothing left to write" case.

Prompt for agents
In packages/autoconfig/src/run.ts, ensureNodejsCompatIsEnabled() now omits the compatibility_flags key entirely when the reconciled flag list is empty. saveWranglerJsonc() merges the generated config on top of any wrangler.json(c) that already exists in the project (typically written moments earlier by the framework's own scaffolder), using `{ ...existingWranglerConfig, ...wranglerConfig }`. Because the key is absent from the generated object, a stale `nodejs_compat` in the existing file survives, while compatibility_date is replaced with today's date — the exact combination workerd rejects. Consider making the removal explicit at write time, e.g. by having saveWranglerJsonc strip the redundant Node.js compatibility flags from the merged result (based on the final compatibility_date), rather than relying on the absence of the key to represent a deletion. Add a regression test that seeds an existing wrangler.jsonc containing `nodejs_compat` before runAutoConfig writes the config.
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:skip-pr-description-validation Skip validation of the required PR description format dependencies Used by dependabot to mark PRs as updates to dependencies. package:miniflare Relating to Miniflare

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.

3 participants