Impact Score: 5/10
Cypress v4.8.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.8.0. Source highlight: You can now apply certain test configuration for the duration of a suite or test by passing a configuration object to the test or suite as the second argument. Addresses #7167.
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.
โจ New Features & Capabilities (2)
- We added experimental shadow DOM support through the `experimentalShadowDomSupport` option. See the Experiments page for more information. Addresses #144.
- TypeScript types for `Cypress.automation` have been added. Addresses #7519.
๐ง Bug Fixes & Patches (6)
- Upon domain navigation, `before` and `after` hooks defined in completed suites no longer erroneously rerun. Fixes #1987.
- Errors thrown within root level `after` hooks now correctly display in the Test Runner's Command Log. Fixes #2296.
- We fixed a regression in 4.6.0 where an XHR response without a body would cause Cypress to throw `Cannot read property '__error' of null`. Fixes #7518.
- We fixed a regression in 4.6.0 where using `cy.visit()` to an authenticated URL would error with `Request cannot be constructed from a URL that includes credentials: /__cypress/runner/./wasm/mappings.wasm` Fixes #7481.
- We now properly load code from the `pluginsFile` or `supportFile` when they are TypeScript files. Fixes #7459.
- utf-8 characters now properly display within error code frames. Fixes #7507.
๐ View Raw Release Notes (Original Developer Log)
*Released 6/8/2020*
**Features:**
- You can now apply certain [test configuration](https://on.cypress.io/configuration#Test-Configuration) for the duration of a suite or test by passing a configuration object to the test or suite as the second argument. Addresses [#7167](https://github.com/cypress-io/cypress/issues/7167).
- [`Cypress.isBrowser()`](https://on.cypress.io/isbrowser) has been expanded to allow for new matcher arguments to assist in filtering matching browsers. Addresses [#7168](https://github.com/cypress-io/cypress/issues/7168).
- We now display the currently running file at the top of the Test Runner's Command Log. [That file can be opened](https://on.cypress.io/test-runner#Open-files-in-your-IDE) in your [preferred file opener](https://on.cypress.io/IDE-integration#File-Opener-Preference) by clicking the file. Addresses [#7506](https://github.com/cypress-io/cypress/issues/7506).
- We added experimental shadow DOM support through the [`experimentalShadowDomSupport`](https://on.cypress.io/experiments#Shadow-DOM) option. See the [Experiments page](https://on.cypress.io/experiments#Shadow-DOM) for more information. Addresses [#144](https://github.com/cypress-io/cypress/issues/144).
**Bugfixes:**
- Upon domain navigation, `before` and `after` hooks defined in completed suites no longer erroneously rerun. Fixes [#1987](https://github.com/cypress-io/cypress/issues/1987).
- Errors thrown within root level `after` hooks now correctly display in the Test Runner's Command Log. Fixes [#2296](https://github.com/cypress-io/cypress/issues/2296).
- We fixed a regression in [4.6.0](https://on.cypress.io/changelog-4-6-0) where an XHR response without a body would cause Cypress to throw `Cannot read property '__error' of null`. Fixes [#7518](https://github.com/cypress-io/cypress/issues/7518).
- We fixed a regression in [4.6.0](https://on.cypress.io/changelog-4-6-0) where using [`cy.visit()`](https://on.cypress.io/visit) to an authenticated URL would error with `Request cannot be constructed from a URL that includes credentials: /__cypress/runner/./wasm/mappings.wasm` Fixes [#7481](https://github.com/cypress-io/cypress/issues/7481).
- We now properly load code from the `pluginsFile` or `supportFile` when they are TypeScript files. Fixes [#7459](https://github.com/cypress-io/cypress/issues/7459).
- utf-8 characters now properly display within error code frames. Fixes [#7507](https://github.com/cypress-io/cypress/issues/7507).
- Errors thrown in a [`cy.on('fail', fn)`](https://on.cypress.io/catalog-of-events#Cypress-Events) fail handler now display a stack trace and code frame pointing to the origin of the error. Fixes [#7512](https://github.com/cypress-io/cypress/issues/7512).
- [`.click()`](https://on.cypress.io/click) now properly clicks on wrapped inline elements when the first child element in the parent element has no width or height. Fixes [#7434](https://github.com/cypress-io/cypress/issues/7434) and [#7012](https://github.com/cypress-io/cypress/issues/7012).
- [`cy.wrap()`](https://on.cypress.io/wrap) now properly respects the `timeout` option. It also better handles situations when passed a promise that never resolves. Fixes [#5980](https://github.com/cypress-io/cypress/issues/5980).
- When [`experimentalComponentTesting`](https://on.cypress.io/experiments#Component-Testing) is enabled, Cypress will no longer exit with SIGABRT in certain situations. Fixes [#7572](https://github.com/cypress-io/cypress/issues/7572).
- We fixed a regression in [3.8.0](https://on.cypress.io/changelog-3-8-0) where the "Tests" button in the Test Runner wouldn't take you back to the tests list in all browsers. Fixes [#5948](https://github.com/cypress-io/cypress/issues/5948).
- Using the `S` shortcut during [`.pause()`](https://on.cypress.io/pause) no longer does anything. This prevents the Test Runner from getting into a 'stuck' state. Fixes [#6867](https://github.com/cypress-io/cypress/issues/6867).
**Misc:**
- The design of errors and some iconography displayed in the Test Runner's Command Log have been updated. Addresses [#7499](https://github.com/cypress-io/cypress/issues/7499), [#7542](https://github.com/cypress-io/cypress/issues/7542) and [#7563](https://github.com/cypress-io/cypress/issues/7563).
- The commands in the Test Runner's Command Log now display in the same casing as the original command. Addresses [#5773](https://github.com/cypress-io/cypress/issues/5773).
- The navigation links in the Test Runner now display the correct CSS styles when focused. Addresses [#7491](https://github.com/cypress-io/cypress/issues/7491).
- [`Cypress.config()`](https://on.cypress.io/config) now has TypeScript types for the `taskTimeout` option. Addresses [#7531](https://github.com/cypress-io/cypress/issues/7531).
- TypeScript types for [`cy.screenshot()`](https://on.cypress.io/screenshot) options and [`Cypress.log()`](https://on.cypress.io/cypress-log) have been updated to be more accurate. Addresses [#7445](https://github.com/cypress-io/cypress/issues/7445).
- TypeScript types for `Cypress.automation` have been added. Addresses [#7519](https://github.com/cypress-io/cypress/issues/7519).
- We now display a more accurate error message when passing a browser to the `--browser` flag that is not supported by Cypress. Addresses [#6979](https://github.com/cypress-io/cypress/issues/6979).
- 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 [#7588](https://github.com/cypress-io/cypress/pull/7588) and [#7591](https://github.com/cypress-io/cypress/pull/7591).
**Dependency Updates:**
- Upgraded `chrome-remote-interface` from `0.28.1` to `0.28.2`. Addressed in [#7615](https://github.com/cypress-io/cypress/pull/7615).
- Upgraded `electron` from `8.3.0` to `8.3.1`. Addressed in [#7599](https://github.com/cypress-io/cypress/pull/7599).