Impact Score: 5/10
Cypress v4.6.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: cypress ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Cypress v4.6.0. Source highlight: *Released 5/20/2020*
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โก Performance & Enhancements (2)
- Cypress now utilizes source maps to enhance the error experience. Stack traces are translated so that your source files are shown instead of the generated file that is loaded by the browser. Cypress will include an inline source map in your spec file. If you modify the preprocessor, ensure that inline source maps are enabled to get the same experience. Users of `@cypress/webpack-preprocessor` should upgrade to v5.4.1 or later of the package which will correctly inline source maps. Addresses #881
- We improved error handling when Cypress launches Chromium-family browsers. Addresses #6518.
๐ง Bug Fixes & Patches (6)
- Default TypeScript options are now set to `module: commonJS` which Node.js and the browser expect. This fixes a situation where setting a different module in a `tsconfig.json` would cause errors to throw if you had `export`, `import` or `async` keywords in your code. Fixes #7005, #7011, #7043, and #7151.
- When `experimentalSourceRewriting` is enabled, setting `location` or `location.href` to a relative href, or using `location.replace` or `location.assign` with a relative href will no longer navigate the AUT to the wrong URL. Fixes #3975 and #3994.
- When `experimentalSourceRewriting` is enabled, the use of `window.top` and `window.parent` will no longer cause the AUT to break out of the Cypress iframe. Fixes #5271 and #1467.
- When `experimentalSourceRewriting` is enabled, calls to `window.frames`, `window.parent.frames`, and other `frames` will no longer point to the wrong reference after being proxied through Cypress. Fixes #2664.
- When `experimentalSourceRewriting` is enabled, scripts using the `integrity` attribute for sub-resource integrity (SRI) will now load after being proxied through Cypress. Fixes #2393.
- When `experimentalSourceRewriting` is enabled, the use of `document.location` to set the URL will no longer navigate the AUT to the wrong URL. Fixes #7402.
๐ View Raw Release Notes (Original Developer Log)
*Released 5/20/2020*
**Features:**
- [Errors](https://on.cypress.io/debugging#Errors) in the Test Runner now display a code frame to preview where the failure occurred with the relevant file, line number, and column number highlighted. Clicking on the file link will open the file in your [preferred file opener](https://on.cypress.io/IDE-integration#File-Opener-Preference) and highlight the line and column in editors that support it. Addresses [#3762](https://github.com/cypress-io/cypress/issues/3762).
- Cypress now utilizes [source maps](https://on.cypress.io/debugging#Source-maps) to enhance the error experience. Stack traces are translated so that your source files are shown instead of the generated file that is loaded by the browser. Cypress will include an inline source map in your spec file. If you [modify the preprocessor](https://on.cypress.io/preprocessors-api), ensure that inline source maps are enabled to get the same experience. Users of `@cypress/webpack-preprocessor` should upgrade to v5.4.1 or later of the package which will correctly inline source maps. Addresses [#881](https://github.com/cypress-io/cypress/issues/881), [#1761](https://github.com/cypress-io/cypress/issues/1761) and [#3966](https://github.com/cypress-io/cypress/issues/3966).
- Cypress now enables AST-based JS/HTML rewriting when setting the [`experimentalSourceRewriting`](https://on.cypress.io/experiments) configuration option to `true`. Addresses [#5273](https://github.com/cypress-io/cypress/issues/5273).
- Number arguments passed to `have.text`, `have.id`, `have.data`, `have.value`, and `have.attr` [assertions chainers](https://on.cypress.io/assertions#Chai-jQuery) are now automatically cast to strings for comparison. Addresses [#7314](https://github.com/cypress-io/cypress/issues/7314).
**Bugfixes:**
- Default [TypeScript](https://on.cypress.io/typescript-support) options are now set to `module: commonJS` which Node.js and the browser expect. This fixes a situation where setting a different module in a `tsconfig.json` would cause errors to throw if you had `export`, `import` or `async` keywords in your code. Fixes [#7005](https://github.com/cypress-io/cypress/issues/7005), [#7011](https://github.com/cypress-io/cypress/issues/7011), [#7043](https://github.com/cypress-io/cypress/issues/7043), and [#7151](https://github.com/cypress-io/cypress/issues/7151).
- When [`experimentalSourceRewriting`](https://on.cypress.io/experiments) is enabled, setting `location` or `location.href` to a relative href, or using `location.replace` or `location.assign` with a relative href will no longer navigate the AUT to the wrong URL. Fixes [#3975](https://github.com/cypress-io/cypress/issues/3975) and [#3994](https://github.com/cypress-io/cypress/issues/3994).
- When [`experimentalSourceRewriting`](https://on.cypress.io/experiments) is enabled, the use of `window.top` and `window.parent` will no longer cause the AUT to break out of the Cypress iframe. Fixes [#5271](https://github.com/cypress-io/cypress/issues/5271) and [#1467](https://github.com/cypress-io/cypress/issues/1467).
- When [`experimentalSourceRewriting`](https://on.cypress.io/experiments) is enabled, calls to `window.frames`, `window.parent.frames`, and other `frames` will no longer point to the wrong reference after being proxied through Cypress. Fixes [#2664](https://github.com/cypress-io/cypress/issues/2664).
- When [`experimentalSourceRewriting`](https://on.cypress.io/experiments) is enabled, scripts using the `integrity` attribute for sub-resource integrity (SRI) will now load after being proxied through Cypress. Fixes [#2393](https://github.com/cypress-io/cypress/issues/2393).
- When [`experimentalSourceRewriting`](https://on.cypress.io/experiments) is enabled, the use of `document.location` to set the URL will no longer navigate the AUT to the wrong URL. Fixes [#7402](https://github.com/cypress-io/cypress/issues/7402).
- Type definitions will no longer conflict when running Cypress in a project with Jest. Fixes [#3536](https://github.com/cypress-io/cypress/issues/3536).
- We increased the timeout for launching Firefox from 2.5 seconds to 50 seconds. Previously, users hitting this limit would encounter a "cannot open socket" error; now, the error will be wrapped. Fixes [#7159](https://github.com/cypress-io/cypress/issues/7159).
- [`.click`](https://on.cypress.io/click) will now click in the correct coordinates when either x or y coordinate options are zero. Fixes [#7319](https://github.com/cypress-io/cypress/issues/7319).
- Cypress no longer displays `onError is not a function` when a browser can't connect. Fixes [#7217](https://github.com/cypress-io/cypress/issues/7217).
- You can now pass the `force: true` option to [`.select()`](https://on.cypress.io/select) to select options within a disabled `<select>`. Addresses [#107](https://github.com/cypress-io/cypress/issues/107).
- We now throw an error when attempting to [`.select()`](https://on.cypress.io/select) an `<option>` within a disabled `<optgroup>`. Fixes [#7226](https://github.com/cypress-io/cypress/issues/7226).
- We fixed a regression in [4.3.0](https://on.cypress.io/changelog-4-3-0) where the message output during errors were not formatted correctly. Fixes [#6924](https://github.com/cypress-io/cypress/issues/6924).
- Using [`Cypress._.capitalize`](https://on.cypress.io/_) now correctly behaves the same as Lodash's capitalize method. Fixes [#7222](https://github.com/cypress-io/cypress/issues/7222).
- When [`experimentalComponentTesting`](https://on.cypress.io/experiments#Component-Testing) is enabled, clicking on a component spec now watches the correct file without assuming it is an integration file. Fixes [#7244](https://github.com/cypress-io/cypress/issues/7244).
- Firefox video recording no longer crashes Cypress when running very short spec files. Fixes [#6408](https://github.com/cypress-io/cypress/issues/6408).
- Applications containing a DOM element with an id attribute containing 'jquery' will no longer throw an error during [`cy.visit()`](https://on.cypress.io/visit). Fixes [#6193](https://github.com/cypress-io/cypress/issues/6193).
- Long errors generated when compiling or bundling the test file are now horizontally scrollable. Fixes [#6898](https://github.com/cypress-io/cypress/issues/6898).
**Misc:**
- Cypress no longer requires write access to the root of the project, it instead will display a warning when no write access is given. Addresses [#1281](https://github.com/cypress-io/cypress/issues/1281).
- We increased the timeout for launching Chrome from 20 seconds to 50 seconds. Addressed in [#7372](https://github.com/cypress-io/cypress/pull/7372).
- We increased the timeout for macOS or Linux to exit from a `--version` command when looking for available browsers from 5 seconds to 30 seconds. Addressed in [#7366](https://github.com/cypress-io/cypress/pull/7366).
- We improved error handling when Cypress launches Chromium-family browsers. Addresses [#6518](https://github.com/cypress-io/cypress/issues/6518).
- We now export `Cypress.ConfigOptions` types as a partial of the full options interface. Addresses [#7238](https://github.com/cypress-io/cypress/issues/7238).
- We're continuing to make progress in converting our codebase from CoffeeScript to JavaScript. Addresses [#2690](https://github.com/cypress-io/cypress/issues/2690) in [#7162](https://github.com/cypress-io/cypress/pull/7162), [#7216](https://github.com/cypress-io/cypress/pull/7216), [#7227](https://github.com/cypress-io/cypress/pull/7227), [#7320](https://github.com/cypress-io/cypress/pull/7320), [#7232](https://github.com/cypress-io/cypress/pull/7232), and [#7345](https://github.com/cypress-io/cypress/pull/7345).
**Dependency Updates:**
- Upgraded `@cypress/browserify-preprocessor` from `2.2.2` to `2.2.3`. Addressed in [#7291](https://github.com/cypress-io/cypress/pull/7291).
- Upgraded `cookie-parser` from `1.4.4` to `1.4.5`. Addressed in [#7389](https://github.com/cypress-io/cypress/pull/7389).
- Upgraded `cypress-multi-reporters` from `1.2.4` to `1.4.0`. Addressed in [#7431](https://github.com/cypress-io/cypress/pull/7431).
- Upgraded `electron` from `8.2.3` to `8.3.0`. Addressed in [#7236](https://github.com/cypress-io/cypress/pull/7236) and [#7387](https://github.com/cypress-io/cypress/pull/7387).
- Upgraded `image-size` from `0.7.4` to `0.8.3`. Addressed in [#7236](https://github.com/cypress-io/cypress/pull/7236).
- Upgraded `jimp` from `0.9.3` to `0.12.0`. Addressed in [#7408](https://github.com/cypress-io/cypress/pull/7408).
- Upgraded `return-deep-diff` from `0.3.0` to `0.4.0`. Addressed in [#7292](https://github.com/cypress-io/cypress/pull/7292).