Skip to content

Update dependency wrangler to v4.156.0 - #7

Closed
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/wrangler-4.x
Closed

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/wrangler-4.x

Conversation

@renovate

@renovate renovate Bot commented Oct 30, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
wrangler (source) 4.150.0 → 4.156.0 age adoption passing confidence

Release Notes

cloudflare/workers-sdk (wrangler)

v4.156.0

Compare Source

Minor Changes
  • #​16532 25802bc Thanks @​simonha9! - Allow the experimental wrangler d1 insights command to run across every D1 database in the account

    The database name is now optional. With no name, the command returns the top queries across every D1 database in the account, and each result gains a databaseId field.

Patch Changes
  • #​16369 ec0bea4 Thanks @​MattieTK! - Stop autoconfig in non-interactive runs when a project root holds both static files and a Pages functions directory

    When a project without a detected framework has a functions directory, autoconfig asks whether it is a Cloudflare Pages project. Non-interactive runs (CI and coding agents) assume it is not and continue as a static site. When the static files are in the project root, that deploys the root as static assets, and the Pages Functions (the project's API routes) are not deployed.

    In that case autoconfig now stops with an error explaining that Pages Functions cannot be migrated automatically yet. For Pages Functions it suggests moving the static files into a subdirectory and deploying with wrangler pages deploy, or migrating the Functions to a Worker; for a functions directory that is not Pages Functions, it suggests moving the static files into a subdirectory or adding a configuration file. Projects whose static files are already in a subdirectory, projects detected as Pages or with a detected framework, and interactive runs where the user answers the prompt are unaffected.

  • #​16367 b4653b4 Thanks @​MattieTK! - Write a protective .assetsignore when autoconfig uses the project root as the static assets directory

    Autoconfig is meant to write an .assetsignore when the project root itself is the assets directory, so that local files are not uploaded as public assets. The check compared the detected output directory, which is relative ("."), with the absolute project path, so it never matched and no .assetsignore was written. A static project with an index.html at its root (for example after wrangler setup or a zero-config wrangler deploy) then uploaded files such as .env, .dev.vars, .git and node_modules as public assets.

    The check now resolves the assets directory that the generated configuration uses and compares it with the project root, so frameworks that set their own build output directory (such as Nuxt or SvelteKit) do not get an unused root .assetsignore. The generated .assetsignore also covers what a Cloudflare Pages upload skips, alongside the existing .wrangler, .dev.vars* and .env* entries: /_worker.js, /_routes.json and /functions at the root (so nested paths such as blog/functions/index.html are still uploaded), node_modules, .git and .DS_Store at any depth, and .npmrc. If an existing .assetsignore only lists a narrower pattern such as .env, .env* is added so that files like .env.production are skipped too. When the project root of an assets-only project contains a Pages functions directory or _worker.js, autoconfig now warns that it will not be deployed, since it is excluded from the assets and not run as server code.

  • #​16532 25802bc Thanks @​simonha9! - Fail the experimental wrangler d1 insights command with an actionable error when the GraphQL Analytics API rejects the request

    Previously the command printed an empty []. Rate limit errors now say how long to wait before retrying, and authorization errors name the "Account Analytics: Read" permission the API token needs.

  • #​16013 8b64bec Thanks @​swalker326! - Fix Durable Object self-references in tests and container validation

    Durable Object bindings that explicitly name the Worker itself now resolve to the test runner in @cloudflare/vitest-plugin, for both cloudflare.config.ts and Wrangler configuration files. Named Wrangler environments use their effective Worker name, keeping bindings to the base Worker external. Container validation also accepts these self-references, using the effective deployment name to distinguish local and external bindings.

    Explicit binding targets remain intact during configuration conversion, so deploying with --name or a CI name override preserves the intended Durable Object target.

  • Updated dependencies [15fbaed, d8899ac]:

v4.155.0

Compare Source

Minor Changes
  • #​16536 a95d647 Thanks @​WalshyDev! - Support remote Analytics Engine bindings in local development

    Setting remote: true on an Analytics Engine dataset now sends writeDataPoint() calls from wrangler dev and the Vite plugin to the real dataset. Without it, writes are still dropped locally.

    {
      "analytics_engine_datasets": [
        {
          "binding": "EVENTS",
          "dataset": "my-dataset",
          "remote": true
        }
      ]
    }
Patch Changes
  • #​16526 dba0e81 Thanks @​petebacondarwin! - Render terminal control characters as visible text in tail output

    Pretty tail and remote-preview output now escape control characters in log strings, exceptions and event metadata. Unicode, tabs and multiline logs remain readable, and JSON output keeps the original structured values.

  • #​16489 fc57bc0 Thanks @​akshitsinha! - Keep Flagship flag metadata when updating flags

    wrangler flagship flags commands that update an existing flag, such as enable, set, rollout, split, and rules, no longer clear the flag's metadata. wrangler flagship flags pull now copies metadata into the local flag store.

  • #​16521 ec6eddd Thanks @​petebacondarwin! - Validate .assetsignore encoding before building asset manifests

    Asset uploads and local development now stop with an actionable user error when .assetsignore is not valid UTF-8 or contains null characters, instead of silently losing its patterns. This also applies to standalone Miniflare and the Wrangler, Vite and Vitest development integrations. Save the file as UTF-8 to continue; UTF-8 files with a byte order mark and intentionally empty files remain supported.

  • Updated dependencies [a95d647, c7a3373, c7a3373, c7a3373]:

v4.154.0

Compare Source

Minor Changes
  • #​16494 0968b08 Thanks @​petebacondarwin! - Enable Miniflare's development registry by default and centralize path resolution

    In Miniflare v5 beta, resolve the registry from CLOUDFLARE_DEV_REGISTRY_PATH, then the unsafeDevRegistryPath constructor option, then <Cloudflare config directory>/dev-registry/v5. The default is independent of legacy Wrangler directories and is scoped to the Miniflare major version. The Vite v2 beta plugin follows this new default, while current Wrangler and getPlatformProxy() retain Wrangler's legacy default for compatibility with existing Wrangler sessions. Vite v2 and Wrangler therefore require the same CLOUDFLARE_DEV_REGISTRY_PATH to discover each other; set it for both processes when mixing these tools.

    Add enableDevRegistry: false to disable registration and discovery explicitly. Shared storage now uses the resolved default without requiring an explicit path. As before, shared storage requires an enabled registry to elect a storage owner, so combining unsafeEnableSharedStorage: true with enableDevRegistry: false is rejected. Miniflare no longer reads MINIFLARE_REGISTRY_PATH; use CLOUDFLARE_DEV_REGISTRY_PATH instead. Expose resolveDevRegistryPath() for integrations that also read registry files. Wrangler uses the effective path for its runtime configuration, initial bindings display, and Flagship active-session check, so the canonical override cannot bypass that check. An explicitly disabled Wrangler registry remains disabled.

Patch Changes
  • #​16499 f3c13b3 Thanks @​dinasaur404! - Preserve binding error codes and names in local development

    Errors from remote bindings and from Node.js binding proxies (getPlatformProxy() and Miniflare#getBindings()) now keep their machine-readable properties, such as Artifacts' code and numericCode. Previously these properties were dropped and the error name was folded into the message (for example "ArtifactsError: Repository not found"), so code could only branch on error text during local development.

    Node.js callers also keep custom error names such as ArtifactsError. Errors from remote bindings received inside a Worker keep their properties but are still named Error.

  • Updated dependencies [0968b08, f3c13b3]:

v4.153.0

Minor Changes
  • #​14865 c0e915f Thanks @​TheSaiEaranti! - Add an --infer-origin-from-routes flag to wrangler dev

    When a config has routes, local dev infers the origin from the first route, so the Worker sees request.url, the Host header, and any Origin header rewritten to the route's host even though the client connected to localhost. That silently breaks Host/Origin-sensitive logic — for example a CORS check allowlisting http://localhost:* receives http://<route-host> instead and rejects the request only in local dev.

    The inference is intentional and remains the default. Passing --infer-origin-from-routes=false now opts out, preserving the real local origin without removing routes from the config. An explicitly configured --host, --local-upstream, or dev.host continues to take precedence either way. The flag only affects local development: in remote mode the route host still determines the preview session as before.

  • #​15955 23ef63a Thanks @​ericclemmons! - Expand dotenv variable references in --secrets-file input

    Dotenv files supplied through --secrets-file to deploy, versions upload, and preview now expand $VAR and ${VAR} references using process values and earlier file values. Process environment values override matching file keys, including explicitly empty values. Treat dotenv secrets files as trusted input: they can read and upload any process environment value, such as a CI credential referenced by X=${GITHUB_TOKEN}. In CI, use secrets files whose contents untrusted contributors cannot modify.

    This changes how existing dotenv secrets files are interpreted: an unset reference becomes an empty string, so PASSWORD=pa$word becomes pa when word is unset. Escape literal dollar signs with a backslash (PASSWORD=pa\$word), or use a JSON secrets file to preserve values exactly. JSON input and bulk-secret commands, including piped stdin, retain their existing literal parsing.

Patch Changes
  • #​16403 5f82a56 Thanks @​dependabot! - Update DEFAULT_COMPAT_DATE to 2026-10-22

    Use the bundled workerd release's compatibility date by default when scaffolding new projects or when no compatibility date is configured.

  • #​16437 e651d7c Thanks @​dependabot! - Update DEFAULT_COMPAT_DATE to 2026-10-23

    Use the bundled workerd release's compatibility date by default when scaffolding new projects or when no compatibility date is configured.

  • #​16403 5f82a56 Thanks @​dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @​cloudflare/workers-types ^5.20261019.1 ^5.20261022.1
    workerd 1.20261019.1 1.20261022.1
  • #​16437 e651d7c Thanks @​dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @​cloudflare/workers-types ^5.20261022.1 ^5.20261023.1
    workerd 1.20261022.1 1.20261023.1
  • #​16476 8a30d8e Thanks @​tannerlinsley! - Update Undici to 7.30.1 to prevent a malformed HTTP response from crashing development tools

    The updated shared dependency rejects excessive content encodings without leaving an unhandled stream error when the server closes the connection early. This fixes GHSA-xjj6-f33q-929c and keeps the matching Undici types on the same version.

  • #​16485 b7e762d Thanks @​Cherry! - Fix the Windows keyring install when the config path contains a space

    On Windows, wrangler login --use-keyring could not set up keyring storage when the configuration path contained a space, such as a C:\Users\John Smith profile, so credentials fell back to the plaintext file. Keyring setup now works for those paths and credentials are stored encrypted.

  • #​16405 c709bff Thanks @​ondraulehla! - Fix kv key list returning only the first 1000 keys in local mode

    Listing a local namespace with more than 1000 keys stopped after the first 1000 without any warning, so the output looked complete when it wasn't. kv key list now returns every key in local mode, with or without --prefix.

  • #​16490 bcd618d Thanks @​petebacondarwin! - Update Zod to 4.6.6 to address GHSA-mrhx-c7xc-m3w5

    The updated shared dependency fixes excessive memory consumption when validating oversized collections. This updates both the published Zod dependencies and the copies bundled into development tools and Workers.

  • Updated dependencies [9e05ade, 5f82a56, e651d7c, 5f82a56, e651d7c, 8a30d8e, bcd618d]:

v4.152.0

Minor Changes
  • #​14900 08f22d3 Thanks @​mack-erel! - Support remote Hyperdrive bindings in local development

    {
      "hyperdrive": [
        {
          "binding": "HYPERDRIVE",
          "id": "<your-hyperdrive-id>",
          "remote": true
        }
      ]
    }
  • #​16357 182d6de Thanks @​Naapperas! - Add a jurisdiction setting to Workflows

    A Workflow defined by the Worker can now set the jurisdiction that its instances run and store their data in, on either a workflows binding or a workflow export:

    {
      "workflows": [
        {
          "binding": "MY_WORKFLOW",
          "name": "my-workflow",
          "class_name": "MyWorkflow",
          "jurisdiction": "eu"
        }
      ]
    }

    The accepted values are eu, fedramp, and us. wrangler deploy and wrangler triggers deploy send the jurisdiction when they create or update the Workflow. A Workflow's jurisdiction is set when it is created and cannot be changed afterwards, so wrangler deploy and wrangler versions upload stop before uploading when an existing Workflow has a different jurisdiction from the configured one. Leaving jurisdiction out keeps the Workflow's existing jurisdiction. @cloudflare/config adds the setting to exports.workflow(), cf migrate carries it over, and wrangler workflows describe prints it. Local development ignores it.

Patch Changes
  • #​16388 80a9f96 Thanks @​DevVettel! - Print wrangler auth token --json output regardless of WRANGLER_LOG

    Previously the JSON was written through the normal log channel, so setting WRANGLER_LOG to warn, error or none made the command exit successfully with empty stdout. Tools that parse this output, such as the OpenNext Cloudflare adapter in CI, then failed to find any credentials. The JSON is now always printed, like other --json commands.

  • #​16361 2878645 Thanks @​GrosserNL! - Report the R2 bucket location returned by the API when creating a bucket

    wrangler r2 bucket create --location printed the requested location hint even when R2 ignored it. Recreating a deleted bucket name keeps the original location, so the success message could claim a placement the bucket does not have. The command now uses the location from the create response: it mentions the hint only when that location matches, and otherwise reports the location R2 actually applied.

  • Updated dependencies [08f22d3, a4eb57d]:

v4.151.3

Compare Source

Patch Changes
  • #​15611 4508172 Thanks @​taylorlee! - Allow wrangler dev to start module Workers without a default export

    Previously, wrangler dev failed to start module Workers that exported only named entrypoints, such as RPC services, unless an unused default export was added. These Workers now start normally in local development without that workaround.

  • #​16370 61fc739 Thanks @​WalshyDev! - Fetch the remote config diff from the configured compliance region

    When a Worker was last deployed from the dashboard, wrangler deploy and wrangler versions upload download its remote configuration to compare with the local one. These requests ignored the compliance_region field in the Wrangler configuration file and only honoured the CLOUDFLARE_COMPLIANCE_REGION environment variable. A FedRAMP High Worker configured through the config file would send them to api.cloudflare.com instead of api.fed.cloudflare.com, and the deploy would fail with authentication errors. They now use the same compliance region as the rest of the deploy.

  • #​15846 a88cac4 Thanks @​oddharsh! - Fail with an error instead of hanging when local dev requests can't work under Bun

    Bun's fetch() ignores the undici dispatcher that Miniflare routes requests through (oven-sh/bun#39247). Under Bun, createTestHarness()'s server.fetch() and server.getWorker()'s fetch(), email() and scheduled() now throw a UserError, requests to the dev server URL get a 503 naming the cause, and starting remote bindings throws a UserError. Each of these used to hang with no error. server.getWorker().getEnv() and getExport() keep working under Bun.

  • #​16359 262021d Thanks @​tw4! - Stop --strict deploys and version uploads from aborting when the API omits optional binding fields

    Previously, wrangler deploy --strict and wrangler versions upload --strict could report a destructive change for an unchanged configuration, for example an R2 bucket in the default jurisdiction, because a field the API left out was compared as removed. Missing and unset optional fields are now treated as equal, so these commands proceed when the local configuration matches the deployed Worker.

  • Updated dependencies [3464abc]:

v4.151.2

Compare Source

Patch Changes

v4.151.1

Compare Source

Patch Changes
  • #​15541 e13d5cc Thanks @​mack-erel! - Keep remote dev sessions alive through transient network failures

    wrangler dev --remote and getPlatformProxy() refresh their preview token before it expires, but a single failed refresh — for example while the network was briefly down — stopped refreshing for good, leaving the session broken until restart. A failed refresh now retries every minute until it succeeds. Rebuilds also no longer push the refresh past the session's expiry.

  • #​16284 42c6912 Thanks @​karloper! - Fix wrangler rollback reporting success after the changed secrets confirmation is declined

    Previously, declining the "The following secrets have changed…" confirmation printed "Aborting rollback..." and then also printed a success message and the target version as the "Current Version ID", even though no deployment was made and the original version was still live. Wrangler now stops after aborting, so the output matches what is actually deployed.

  • #​13742 4a5377f Thanks @​edmundhung! - Hide the wrangler dev hotkey bar when Turborepo does not forward input

  • Updated dependencies [e1d1b77]:

v4.151.0

Compare Source

Minor Changes
  • #​16245 d6b1c82 Thanks @​WalshyDev! - Include source maps by default in wrangler build --experimental-cf-build-output

    Build Output now matches wrangler deploy and wrangler versions upload, which upload source maps by default, so Workers built for tools like cf get stack traces that point at the original source. Source maps that can't be resolved are skipped rather than failing the build. Set upload_source_maps = false to opt out.

Patch Changes
  • #​16220 97b2fb1 Thanks @​FlorentCollin! - Support local D1 queries through the experimental d1_binding_jsrpc compatibility flag

    Local D1 bindings now implement the RPC query backend used by D1Database.query() and prepared-statement methods when the flag is enabled. Queries reuse local SQLite execution, including transactional batches, execution metadata, and session bookmarks, while bindings without the flag continue to use HTTP. Update the bundled workerd runtime to 1.20261012.1 and align the default compatibility date with that release.

  • Updated dependencies [f360829, 97b2fb1, 97b2fb1, acd2822]:


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Oct 30, 2026

Copy link
Copy Markdown
Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will error in a future major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: wrangler@4.156.0
npm error Found: @cloudflare/workers-types@5.20261013.1
npm error node_modules/@cloudflare/workers-types
npm error   dev @cloudflare/workers-types@"5.20261013.1" from the root project
npm error
npm error Could not resolve dependency:
npm error peerOptional @cloudflare/workers-types@"^5.20261023.1" from wrangler@4.156.0
npm error node_modules/wrangler
npm error   dev wrangler@"4.156.0" from the root project
npm error
npm error Conflicting peer dependency: @cloudflare/workers-types@5.20261030.1
npm error node_modules/@cloudflare/workers-types
npm error   peerOptional @cloudflare/workers-types@"^5.20261023.1" from wrangler@4.156.0
npm error   node_modules/wrangler
npm error     dev wrangler@"4.156.0" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2026-10-30T09_16_53_827Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2026-10-30T09_16_53_827Z-debug-0.log

@Azathothas

Copy link
Copy Markdown
Member

Closed: wrangler stays at 4.150.0 for now. Its workerd runs the compatibility date 2026-10-13 that the tests and the measurement probe use (DOM-061 in TODO/ops.md), and this PR's lock file was not updated, so npm ci failed its gate. DOM-030 moves wrangler, the compatibility date and the Workers types together (its Found of 2026-10-29T16:10Z in TODO/serve.md).

@Azathothas Azathothas closed this Oct 30, 2026
@renovate

renovate Bot commented Oct 30, 2026

Copy link
Copy Markdown
Author

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update (4.156.0). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate
renovate Bot deleted the renovate/wrangler-4.x branch October 30, 2026 09:36
Azathothas added a commit that referenced this pull request Oct 30, 2026
packages/state holds state.json (the cursors, the volume history and
the packs owed to the root), the cursor proposals, advance and settle,
and the guard that moves a tag only from the digest it read.

scripts/ingest plans the lanes, runs one adapter, writes and verifies
its segments and raw lane objects, pushes them and proposes a cursor.
scripts/state advances the cursors, builds the closed hours' feed
packs, and moves state:latest and ledger-delta under the guard.
ingest-live.yml runs them: a matrix of lanes, then one job in the group
root-writer, then the promotion, with a chain job beside them that only
runs once DOM-003 writes config/clock.json.

promote.mjs --partial adds the owed packs that the root's live-set rule
allows and leaves the rest owed; ingest-live.yml passes partial: true,
so one pack across a hole no longer blocks every promotion for 7 days.
compact-daily.yml now moves ledger-delta under the state guard.

D1 to D24 of DOM-024 are recorded as Decisions of the entry. Three
review lenses ran over two halves (87 findings), fixed in four rounds,
each verified. Nothing has run on GitHub yet: the live Prove waits on
DOM-003's clock and a first adapter.

Also records the close of Renovate #6 and #7.

Gate: npm run gate exits 0 on this tree (1740 tests, 1737 pass, 3
skipped for the platform).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant