# What changed in cypress

> 158 changes in cypress 16 from its official release notes, upgrade guides and advisories: 129 breaking, 7 deprecations, 1 security, 12 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/cypress/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## cypress 16

### Breaking changes

- The result arguments supplied to after:run handlers have a changed shape; update property access in handlers. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The result arguments supplied to after:spec handlers have a changed shape; update property access in handlers. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Aliases are always re-queried, which can change test outcomes when the DOM changes; use a static alias when the value should not be re-queried. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The configuration option was removed; Cypress warns if it remains, and there is no behavior change. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The migration-gate configuration option was removed in Cypress 16.0 and is no longer valid. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The minimum supported Angular version for component testing is now 21. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The minimum required Angular version is now 21.0.0; Angular 18, 19, and 20 are no longer supported. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Angular 17 is no longer supported for component testing; the minimum required Angular version is 18.0.0. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Component testing requires Angular 17.2.0 or later. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The event's second argument is now a launchOptions object rather than an array of browser arguments; use launchOptions.args to access arguments. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Starting in Cypress 14, official support covers the latest three major versions of Chrome, Firefox, and Edge. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- CoffeeScript support was removed, affecting .coffee specs, support files, and fixtures. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Built-in CoffeeScript support was removed: the default preprocessor no longer bundles coffee-loader or coffeescript, and .coffee is no longer resolved for specs, support files, or fixtures. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- For Create React App component testing, change the framework option from create-react-app to react after selecting a bundler. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- For Vue CLI component testing, change the framework option from vue-cli to vue after selecting a bundler. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This option is no longer supported; use `specPattern` inside the `component` configuration object. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Configuration files are required, so configFile false is no longer valid in the module API; JSON config files are also unsupported. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cookie commands use hostname rather than superdomain by default; pass an explicit domain option when cookies should be shared across subdomains. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Component tests now need a bundler; CRA users must eject to webpack or use vite, and change the framework configuration to react. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Removed; delete .end() calls. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- cy.end() was removed; delete calls because a new cy command already terminates the previous chain. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Removed; replace calls with cy.task(). (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The result property `code` was renamed to `exitCode`; update assertions that read the old property. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- cy.exec() was removed. Use cy.task() for Node.js work, or spawn external commands from a task with execFileSync and an argument array. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Use this command as the replacement for the removed cy.server, cy.route, and Cypress.server.defaults APIs. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- A subsequent mount call in the same test removes the previously mounted component from the DOM. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Mounting options no longer accept cssFile, cssFiles, style, styles, stylesheet, or stylesheets; use test-imported CSS or a supportFile for styles. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Angular mounting-option providers are assigned at the module level, so they can override module providers but not providers declared in Component metadata. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Tests interacting with a second origin must use `cy.origin()` because Cypress no longer injects `document.domain` into text/html content by default. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- readFile is a query and re-reads the file when a later command in the chain fails, retrying until the requested property and assertions pass. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The command was removed; use cy.intercept instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The command was removed; use cy.intercept instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The deprecated three-argument signature is no longer supported; use `.callsFake(fn)` on the stub instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- CYPRESS_* environment variables populate env only and do not reach Cypress.expose(); pass values with --expose or copy them into config.expose. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The harness is deprecated and is no longer shipped with the Cypress binary. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The temporary Angular 17 test harness is installed as `@cypress/angular`; update mount imports from `cypress/angular`. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The package requires zone.js version 0.14.0 or newer for Angular component testing. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The Angular signals test harness has been merged into cypress/angular; migrate imports from cypress/angular-signals. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress Cloud communication verifies certificate authorities and rejects unauthorized calls; networks using a self-signed CA can configure the listed CA environment variables. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The command no longer prints proxy or CYPRESS_* environment variables, making output safer to share in bug reports and CI logs. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- To launch directly to the specs list, cypress open now requires --browser and either --e2e or --component. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This CLI command has been removed; use cypress open --component instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The plugins file is no longer supported or automatically loaded; its functionality is replaced by setupNodeEvents() and devServer configuration options. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The React 18 test harness has been merged into cypress/react; migrate imports from cypress/react18 to cypress/react. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The harness is deprecated and is no longer shipped with the Cypress binary. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This CLI command has been removed; use cypress run --component instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- When recording a run to Cloud with Test Replay enabled, the Runner UI is hidden by default, affecting recorded video and runner screenshots; it can be enabled with --runner-ui. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The experimental Cypress Studio has been removed. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Vite 4 is no longer supported for component testing; the minimum supported Vite version is 5. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The package is ESM-only and can no longer be used from a CommonJS context; move the Cypress configuration to ESM or TypeScript. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The default preprocessor no longer shims all built-ins previously provided by webpack v4; configure any additional required built-ins through webpack fallback options. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Webpack 4 and Webpack Dev Server 4 are no longer supported; component testing must use supported versions or an independently installed deprecated package as a temporary workaround. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Webpack 4 is no longer supported for end-to-end preprocessing; a deprecated standalone package version is available as a temporary workaround. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The undocumented firefox:force:gc and log:memory:pressure methods have been removed with no replacement. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This API can no longer overwrite readFile; use Cypress.Commands.overwriteQuery to overwrite the query instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Queries such as cookie and storage reads must be overwritten with overwriteQuery() rather than Cypress.Commands.overwrite(). (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Setting blockHosts with Cypress.config() during test execution now throws; set it in a describe, context, or it test configuration instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- A project cannot contain both JavaScript and TypeScript Cypress config files; Cypress reports an error when loading them together. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The API was removed; use cy.session to preserve cookies and browser storage between tests. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The API was removed; use cy.session to preserve cookies and browser storage between tests. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- `onElement` is no longer an option to `defaults`; remove it from calls to the method. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Removed; migrate to cy.env() or Cypress.expose(). (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress.env() was removed. Use cy.env() for sensitive values or Cypress.expose() for non-sensitive configuration needing synchronous browser access. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress.env() is no longer available in Cypress 16.0; migrate reads to cy.env() or Cypress.expose(). (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Support for cypress.json was removed; Cypress loads JavaScript or TypeScript configuration files instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The API was renamed to `Cypress.ElementSelector`; migrate callers to the new name. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The API was removed; use cy.intercept instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Configure component testing dev servers by specifying a framework and bundler in this option; dev server packages are no longer directly importable. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The env key is no longer valid in per-test or suite config overrides; use expose if necessary. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This is now a testing-type-specific option. Its defaults differ by testing type, and `**/node_modules/**` is automatically added and cannot be overridden. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The configuration option was removed alongside cy.exec(); setting it prints a warning and is otherwise ignored. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The experimental boolean configuration option was removed and replaced by visibilityStrategy. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This configuration option has been removed; remove it and use cy.intercept() to handle fetch requests. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The experimental configuration option is ignored and produces a warning; use manageBrowserMemory instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The experiment flag was removed when Session and Origin became generally available. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The option was removed because its behavior— not injecting `document.domain`—is now the default. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The configuration option was removed; remove it and enable removeSRIAttributes if it was used for SRI. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The configuration option was removed. If SRI attributes block rewritten resources, use removeSRIAttributes instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The experimental Cypress Studio option has been removed; setting it causes Cypress to error on load. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Electron no longer allows fetch or XMLHttpRequest requests from an about:blank page; use cy.request() or navigate first with cy.visit(). (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress 15 removed Firefox CDP automation and uses WebDriver BiDi only; supported Firefox minimums are 135 for Cypress 15.0.0–15.18.1 and 140 for 15.19.0 and newer. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The `getSelector` method has been removed from the Selector Playground API. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress 15 prebuilt Linux binaries no longer support distributions based on glibc below 2.31. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress 14 prebuilt Linux binaries no longer support distributions based on glibc below 2.28. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- invoke throws if the called function returns a promise; use then to call a method that returns a promise. Chained commands can also cause the function to be invoked multiple times. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- JIT compilation is now the default behavior for component tests; set this option to false to disable it. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- JIT compilation no longer applies with vite because there is no benefit to enabling it. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The default delay between keystrokes changed from 10 to 0 milliseconds to improve performance of typing-heavy test runs. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress 14 requires macOS 11 (Big Sur) or newer because of its Electron upgrade. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Replaces experimentalMemoryManagement and defaults to true, enabling browser memory management by default for users running Chromium-based browsers. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The properties and values returned by the Module API changed shape, so code reading cypress.run() results may need updated property access. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The cypress/vue mount function now returns an object containing both the VueWrapper and component instance, rather than the VueWrapper itself. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- mountCallback from cypress/vue has been removed; the notes recommend using mount. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- mountHook from cypress/react has been removed; the notes recommend replacing it with mount and a component. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Chrome, Chromium, and Edge route test traffic through the native browser network, so applications negotiate the server-supported protocol as in production; some network behaviors differ. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The minimum supported Next.js version for component testing is now 15.0.4. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Component testing requires Next.js 15.0.4 or newer, or Next.js 16; Next.js 14 is no longer supported. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Component testing no longer supports Next.js versions 10 through 13; the minimum supported version is 15.0.4. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress 16 requires Node.js 22.x, 24.x, or 26.x and above to install the binary; Node.js 20 and 25 are no longer supported. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress 15 supports Node.js 20, 22, and 24+, and no longer supports Node.js 18 or 23 for installing Cypress. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress 14 requires Node.js 18 or newer to install Cypress and no longer supports Node.js 16 or 21. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Node.js 14 support has been removed; Node.js 16 is deprecated and users are recommended to update to at least Node.js 18. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Installing the Cypress npm package requires Node.js 14, 16, or 18 and later; Node.js 12, 15, and 17 are no longer supported. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The deprecated configuration option has been removed; Cypress uses the Node.js version it was launched with to execute setupNodeEvents. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Nuxt 2 apps can no longer be component tested out of the box because Cypress no longer ships the Vue 2 harness. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Component testing no longer supports React versions below 18.0.0; the minimum required version is 18.0.0. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The Run all specs functionality has been removed. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The Run filtered specs functionality has been removed. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Generated screenshot paths now strip common ancestor paths shared by discovered spec files or specs selected with `--spec` or the spec module API. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- A should callback throws if it invokes Cypress commands; use then to execute commands on the yielded value. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This option must be defined inside `component` or `e2e`. Defaults no longer match CoffeeScript or CJSX; component tests matching the E2E pattern are excluded. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This option is now testing-type-specific and invalid at the top level; multiple matching support files for one testing type cause a load error. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress no longer ships the Svelte 3 and 4 component testing harness; the legacy harness can be installed independently via @cypress/svelte. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- When enabled, Cypress resets the browser context before each test, clearing the page, cookies, localStorage, and sessionStorage across domains. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This option is no longer used; use `specPattern` inside the `component` or `e2e` configuration object. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The minimum supported TypeScript version is 4.x. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- unmount from cypress/react has been removed; the notes recommend using React's unmountComponentAtNode API. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Unsupported browser versions can no longer be run with cypress run or cypress open; Cypress displays an error instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Video recording is disabled by default; set video to true to continue recording. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Video compression is disabled by default, reducing run time while producing larger, higher-quality video files; enable it to reduce file size. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Generated video paths now strip common ancestor paths shared by discovered spec files or specs selected with `--spec` or the spec module API. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- This configuration option has been removed; delete passing-test videos if you want to prevent their upload to Cloud. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Replaces experimentalFastVisibility with a configuration option accepting 'legacy' or 'modern'; 'modern' is now the default, and the option is deprecated as a temporary migration aid. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The minimum supported Vite version for component testing is now 8. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- An inline viteConfig in cypress.config no longer automatically merges with vite.config.js; explicitly import and merge the configuration if needed. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress no longer ships the Vue 2 component testing harness with the Cypress binary; it can be installed independently as @cypress/vue2. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Component tests using Vue CLI now need a bundler; migrate to webpack or vite. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- @cypress/webpack-dev-server no longer supports webpack-dev-server version 3 and ships with version 5 by default; webpack 4 users should install version 4. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- within throws when given multiple elements as its subject; reduce the subject to one element or use aliases or each for collections. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)

### Security

- Use cy.env() to read sensitive values asynchronously; it is read-only and requests only the keys you need. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)

### Deprecations

- Launching directly into component testing with this command is deprecated; use `cypress open --component` instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Electron is deprecated as a test browser; plan to switch to an installed browser. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The bundled Electron browser is deprecated as a test browser and will be removed in a future major version; configure another browser if runs rely on Electron as the implicit default. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The bundled Electron browser is deprecated as a test browser in Cypress 16.0 and will be removed in a future major version. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Electron targeting emits a deprecation warning and will fail after removal; use an installed browser instead. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Setting `injectDocumentDomain` to true avoids some `cy.origin()` calls for matching superdomains but emits a deprecation warning and will be removed in a future version. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The resourceType option on cy.intercept is deprecated and its types may change or it may be removed in the future. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)

### New APIs and options

- Pass a timeout to cy.env() for slow secret lookups; its 4000ms default does not follow defaultCommandTimeout. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The React mount library is included in the main `cypress` package and can be imported from this path. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The Vue mount library is included in the main `cypress` package and can be imported from this path. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress automatically loads a project-root cypress.config.js file when present. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Cypress automatically loads a project-root cypress.config.ts file when present. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The Selector Playground API was renamed to `Cypress.ElementSelector` to reflect use beyond the Selector Playground. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Use Cypress.expose() for public, non-sensitive configuration that needs synchronous access and can be available in the browser. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Set `defaultBrowser` to an installed browser to prevent Cypress from falling back to Electron when no browser is specified. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Set this option to true to use external dependencies in cy.origin callbacks. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Configure public, non-sensitive values under expose instead of env when they should be available through Cypress.expose(). (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Pass public configuration values with --expose when running Cypress; -x is also available. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Pass this option to cypress run to show the Runner UI during a Cloud-recorded run. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)

### Behavior and default changes

- Cypress now uses @angular/platform-browser in place of @angular/platform-browser-dynamic; Angular 21 uses the replacement by default. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Now a retry-able query that re-reads localStorage across origins and retries chained assertions; it accepts a timeout option and uses defaultCommandTimeout. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Now a retry-able query that re-reads sessionStorage across origins and retries chained assertions; it accepts a timeout option and uses defaultCommandTimeout. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The command became generally available; using require and import in its callback remains disabled by default. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The command became generally available for setting up and caching browser storage between tests. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- The zoneless testing harness is now the default cypress/angular test harness. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Built-in placeholder `mount` and `hover` commands can now be overwritten without using `Cypress.Commands.overwrite()`. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
- Users with this existing experimental flag can remove it from their configuration; JIT compilation is now controlled by justInTimeCompile. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)

### Tooling

- Use this command to launch directly into component testing from the main app. (16.0.0) — [upgrade guide](https://docs.cypress.io/app/references/migration-guide)
