# Cypress v16.0.0 - Product: Cypress (https://whatsnew.fyi/product/cypress) - Vendor: Cypress.io - Date: 2026-09-01 - Version: v16.0.0 - Original notes: https://github.com/cypress-io/cypress/releases/tag/v16.0.0 - Permalink: https://whatsnew.fyi/product/cypress/releases/v16.0.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Chrome, Chromium, and Edge now intercept test traffic on the native browser network rather than routing through Cypress, negotiating HTTP/2 or HTTP/3 with your server instead of being downgraded to HTTP/1.1 - **removed** — Support for Node.js 20 and Node.js 25 has been removed; Cypress now requires Node.js ^22.0.0, ^24.0.0, or >=26.0.0 - **changed** — Bundled Node.js version has been upgraded from 22.19.0 to 24.15.0 - **removed** — The Cypress.env() method has been removed; use Cypress.expose() for non-sensitive values and cy.env() for sensitive values - **removed** — The cy.exec() command and execTimeout configuration option have been removed; use cy.task() and taskTimeout instead - **removed** — The cy.end() command, which ended a chain by yielding null, has been removed - **changed** — The experimentalMemoryManagement configuration option has been replaced by manageBrowserMemory, which defaults to true and is now enabled by default in Chromium-based browsers - **removed** — The experimentalSourceRewriting configuration option has been removed - **changed** — The default keystrokeDelay for cy.type() has been changed from 10 to 0 to improve performance - **changed** — The experimentalFastVisibility flag has been replaced with a visibilityStrategy configuration option that accepts 'legacy' or 'modern', defaulting to 'modern' which uses the browser's native Element.checkVisibility() API - **changed** — cy.intercept() behavior has changed such that req.httpVersion is no longer reported and compression headers are no longer present on intercepted responses when using native network interception - **added** — A forceHttp1 configuration option now allows routing every browser through the legacy network path during migration - **added** — A removeSRIAttributes configuration option is now available to address Subresource Integrity errors **Breaking Changes:** - Chrome, Chromium, and Edge intercept test traffic on the native browser network rather than routing it through Cypress, so your application negotiates HTTP/2 or HTTP/3 with your server as it does in production instead of being downgraded to HTTP/1.1. A small number of [`cy.intercept()`](https://on.cypress.io/intercept) behaviors differ as a result: most notably, `req.httpVersion` is no longer reported, and compression headers are no longer present on an intercepted response. Firefox, WebKit, and Electron continue to use the legacy network path, and [`forceHttp1`](https://docs.cypress.io/app/references/configuration#forceHttp1) routes every browser back through it while you migrate. See [Native network interception](https://docs.cypress.io/app/guides/native-network-interception) and the [Migration Guide](https://docs.cypress.io/app/references/migration-guide#Chrome-Chromium-and-Edge-use-the-native-browser-network). Addresses [#3708](https://github.com/cypress-io/cypress/issues/3708). - Removed support for Node.js 20 and Node.js 25. Cypress now requires Node.js `^22.0.0`, `^24.0.0`, or `>=26.0.0`. Addresses [#33705](https://github.com/cypress-io/cypress/issues/33705) and [#33778](https://github.com/cypress-io/cypress/issues/33778). Addressed in [#33771](https://github.com/cypress-io/cypress/pull/33771). - Upgraded bundled Node.js version from `22.19.0` to `24.15.0`. Addressed in [#33494](https://github.com/cypress-io/cypress/pull/33494). - Removed `Cypress.env()`. Use [`Cypress.expose()`](https://on.cypress.io/expose) for non-sensitive values that need to be readable in the browser, and [`cy.env()`](https://docs.cypress.io/api/commands/env) for sensitive values that must remain in the Node process. The `env` key is no longer supported in per-test or suite config overrides; use `expose: { KEY: value }` instead if absolutely necessary. The `allowCypressEnv` configuration option has also been removed. See the [Migration Guide](https://on.cypress.io/cypress-env-migration). Addresses [#33889](https://github.com/cypress-io/cypress/issues/33889). Addressed in [#33963](https://github.com/cypress-io/cypress/pull/33963). - Removed the [`cy.exec()`](https://on.cypress.io/exec) command and the `execTimeout` configuration option, both deprecated in Cypress `15.21.0`. Use [`cy.task()`](https://on.cypress.io/task) and `taskTimeout` instead — a task runs in Node without depending on the operating system, shell, or terminal of the machine running Cypress. Calling `cy.exec()` now throws, and setting `execTimeout` prints a warning and is otherwise ignored. See the [Migration Guide](https://docs.cypress.io/app/references/migration-guide#cyexec-removed). Addresses [#34694](https://github.com/cypress-io/cypress/issues/34694). - Removed the `cy.end()` command, which ended a chain of commands by yielding `null`. A Cypress chain is already terminated when the next `cy.()` starts a new chain, so existing `.end()` calls can simply be removed. See the [Migration Guide](https://docs.cypress.io/app/references/migration-guide#cyend-removed). Addressed in [#33696](https://github.com/cypress-io/cypress/pull/33696). - The `experimentalMemoryManagement` configuration option has graduated out of experimental status and been replaced by [`manageBrowserMemory`](https://docs.cypress.io/app/references/configuration#manageBrowserMemory), which defaults to `true`. Memory management is now enabled by default in Chromium-based browsers. Setting `experimentalMemoryManagement` prints a warning and is otherwise ignored — if you previously set `experimentalMemoryManagement: false` to opt out, you must now set `manageBrowserMemory: false`. See the [Migration Guide](https://docs.cypress.io/app/references/migration-guide#experimentalMemoryManagement-replaced-by-manageBrowserMemory). Addresses [#34385](https://github.com/cypress-io/cypress/issues/34385). - Removed the `experimentalSourceRewriting` configuration option. The default regex-based sou _[Truncated at 4000 characters — full notes: https://github.com/cypress-io/cypress/releases/tag/v16.0.0]_