Impact Score: 5/10
Cypress v3.0.2 โ 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 v3.0.2. Source highlight: *Released 6/28/2018*
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 (3)
- Added `Cypress.browser` doc.
- Added `Cypress.spec` doc.
- Added `after:screenshot` plugin event doc.
โก Performance & Enhancements (1)
- Significantly improved the performance of taking screenshots. #1863.
๐ง Bug Fixes & Patches (6)
- Screenshots taken with `cy.screenshot()` on 2x DPI are now taken at the correct full size. Fixes #1857 and #2018.
- Windows users no longer exit with `EPIPE` errors when running `cypress run` in newer versions of node. Fixes #1841 and #2044.
- Fixed issue where applications programmatically stealing focus would lead to slow runs in Electron when running via `cypress run`. #1909 and #1892.
- Electron no longer reports the browser as out of focus when running via `cypress run`. Fixes #1939.
- Modified the `document.hasFocus()` method to return `true` if the top window (Cypress window) is in focus. This should now correctly match how your application behaves outside of Cypress. Fixes #1940.
- Fixed issue where Cypress would unnecessarily scroll when attempting to locate elements with `position: sticky`. Fixes #1475.
๐ View Raw Release Notes (Original Developer Log)
*Released 6/28/2018*
**Bugfixes:**
- Screenshots taken with [`cy.screenshot()`](https://on.cypress.io/screenshot) on 2x DPI are now taken at the correct full size. Fixes [#1857](https://github.com/cypress-io/cypress/issues/1857) and [#2018](https://github.com/cypress-io/cypress/issues/2018).
- Windows users no longer exit with `EPIPE` errors when running `cypress run` in newer versions of node. Fixes [#1841](https://github.com/cypress-io/cypress/issues/1841) and [#2044](https://github.com/cypress-io/cypress/issues/2044).
- Fixed issue where applications programmatically stealing focus would lead to slow runs in Electron when running via `cypress run`. [#1909](https://github.com/cypress-io/cypress/issues/1909) and [#1892](https://github.com/cypress-io/cypress/issues/1892).
- Electron no longer reports the browser as out of focus when running via `cypress run`. Fixes [#1939](https://github.com/cypress-io/cypress/issues/1939).
- Modified the `document.hasFocus()` method to return `true` if the top window (Cypress window) is in focus. This should now correctly match how your application behaves outside of Cypress. Fixes [#1940](https://github.com/cypress-io/cypress/issues/1940).
- Fixed issue where Cypress would unnecessarily scroll when attempting to locate elements with `position: sticky`. Fixes [#1475](https://github.com/cypress-io/cypress/issues/1475).
- Fixed a bug where changing the [`integrationFolder`](https://on.cypress.io/configuration#Folders-Files) in Windows would lead to errors with plugins. Fixes [#1704](https://github.com/cypress-io/cypress/issues/1704).
- Cypress no longer crashes when a 3rd party server sends invalid `gzip` content. Also fixed issues with incorrectly gunzipping multibyte characters which would potentially lead to serving invalid HTML or JS. Fixes [#1396](https://github.com/cypress-io/cypress/issues/1396) and [#1756](https://github.com/cypress-io/cypress/issues/1756).
- The `--silent` flag should now be respected during `npm install cypress` on all OSes. Fixes [#817](https://github.com/cypress-io/cypress/issues/817).
- Corrected a typo in the CLI for a warning message. Fixes [#2038](https://github.com/cypress-io/cypress/issues/2038).
- Fixed some areas of the Desktop GUI that did not display path names correctly in Windows. Fixes [#1830](https://github.com/cypress-io/cypress/issues/1830).
- The `pluginsFile` now supports an absolute path instead of just a relative one. Fixes [#1837](https://github.com/cypress-io/cypress/issues/1837).
- Fixed a regression introduced in `3.x.x` where application code that used `setTimeout` with a string argument would see the error `fn.apply is not a function`. Fixes [#1854](https://github.com/cypress-io/cypress/issues/1854).
- Fixed issue where preprocessor errors were being swallowed. Fixes [#1877](https://github.com/cypress-io/cypress/issues/1877).
- Fixed issue where Cypress would hang indefinitely when starting a new spec when in `cypress run` mode. Additionally we have optimized the code path to not read in the local `state.json` unnecessarily. Fixes [#2013](https://github.com/cypress-io/cypress/issues/2013) and [#1912](https://github.com/cypress-io/cypress/issues/1912) and [#1905](https://github.com/cypress-io/cypress/issues/1905) and [#1890](https://github.com/cypress-io/cypress/issues/1890).
- Fixed a couple regressions in the Dashboard where timed out runs stayed "Pending" forever. Fixes [#1891](https://github.com/cypress-io/cypress/issues/1891) and [#1952](https://github.com/cypress-io/cypress/issues/1952).
- Fixed another Dashboard regression where an error would throw when recording tests and sending a large list of specs. Fixes [#1901](https://github.com/cypress-io/cypress/issues/1901).
- Fixed issue where videos would not be recorded when an object was returned from `before:browser:launch` when in the Electron browser. Fixes [#1992](https://github.com/cypress-io/cypress/issues/1992).
- Fixed an issue where Cypress would inject content into the `<header>` tag instead of the `<head>` tag. Fixes [#2026](https://github.com/cypress-io/cypress/issues/2026).
- Fixed an oversight where a specific framebusting check was not being properly stripped and removed by the default config option [`modifyObstructiveCode`](https://on.cypress.io/configuration#Browser). Fixes [#2030](https://github.com/cypress-io/cypress/issues/2030) and [#2059](https://github.com/cypress-io/cypress/issues/2059).
- Fixed icons visually shifting when tests were running in the Test Runner. Fixes [#1983](https://github.com/cypress-io/cypress/issues/1983).
- Server sent events now *finally* work correctly in Cypress. Fixes [#1440](https://github.com/cypress-io/cypress/issues/1440) and [#1111](https://github.com/cypress-io/cypress/issues/1111).
- Time traveling snapshots now preserve the styles of empty `<style>` tags with programmatically inserted CSS rules. Fixes [#1226](https://github.com/cypress-io/cypress/issues/1226).
**Misc:**
- There are now several new CLI commands for interacting with the binary cache: [`cypress cache path`](https://on.cypress.io/command-line#cypress-cache-path), [`cypress cache list`](https://on.cypress.io/command-line#cypress-cache-list), and [`cypress cache clear`](https://on.cypress.io/command-line#cypress-cache-clear). Fixes [#1856](https://github.com/cypress-io/cypress/issues/1856).
- We've added a new CLI flag: `--no-exit` for [`cypress run`](https://on.cypress.io/command-line#cypress-run) to keep the browser open after the tests finish running. Fixes [#1871](https://github.com/cypress-io/cypress/issues/1871).
- The [CLI](https://on.cypress.io/command-line) now respects config values and environment variables put in your `.npmrc` file. Fixes [#1399](https://github.com/cypress-io/cypress/issues/1399) and [#1853](https://github.com/cypress-io/cypress/issues/1853).
- Significantly improved the performance of taking screenshots. [#1863](https://github.com/cypress-io/cypress/issues/1863).
- Node module dependencies updated. Fixes [#1674](https://github.com/cypress-io/cypress/issues/1674) and [#1942](https://github.com/cypress-io/cypress/issues/1942).
- The bundled version of `ffmpeg` has now been bumped from `3.x.x` to `4.x.x`. This may help with some issues users were experiencing when recording videos. Fixes [#1972](https://github.com/cypress-io/cypress/issues/1972).
- Added more debug logs to `ffmpeg` to determine why `ffmpeg` compression sometimes causes Cypress to crash (mostly while running in Travis CI). Fixes [#1971](https://github.com/cypress-io/cypress/issues/1971).
- Several improvements to TypeScript typings. Fixes [#1881](https://github.com/cypress-io/cypress/issues/1881) and [#2007](https://github.com/cypress-io/cypress/issues/2007) and [#1899](https://github.com/cypress-io/cypress/issues/1899) and [#1902](https://github.com/cypress-io/cypress/issues/1902) and [#1897](https://github.com/cypress-io/cypress/issues/1897) and [#1907](https://github.com/cypress-io/cypress/issues/1907).
- We improved error logging and the user experience around [`cypress verify`](https://on.cypress.io/command-line#cypress-verify). Fixes [#1984](https://github.com/cypress-io/cypress/issues/1984).
- We no longer log the `skipping install` message if the Cypress binary is already installed locally. Fixes [#1985](https://github.com/cypress-io/cypress/issues/1985).
- Now, by default, screenshots are nested within a folder with the name of **the spec file** that is currently running. Example - the spec named `cypress/integration/foo/bar_spec.js` will save screenshots inside of this directory: `cypress/screenshots/foo/bar_spec.js/*`. Fixes [#1826](https://github.com/cypress-io/cypress/issues/1826).
- Passing `foo/bar/baz` as the fileName arg to [`cy.screenshot()`](https://on.cypress.io/screenshot#Take-a-screenshot-and-save-in-a-specific-directory) inside a spec, `app.spec.js`, will now result in the screenshot being saved to a nested folder path such as: `cypress/screenshots/app.spec.js/foo/bar/baz.png`. Fixes [#1771](https://github.com/cypress-io/cypress/issues/1771) and [#668](https://github.com/cypress-io/cypress/issues/668).
- We now append `(failed)` to the screenshot filename of screenshots taken automatically during test failure. Fixes [#1923](https://github.com/cypress-io/cypress/issues/1923).
- If multiple screenshots are taken during a test that will result in the same filename, their file paths are now appended with a number, i.e. `test name (1).png`. This prevents screenshot files with the same name from being overwritten. Fixes [#1766](https://github.com/cypress-io/cypress/issues/1766).
- Screenshot `onAfterScreenshot` and `onBeforeScreenshot` callbacks ar enow invoked for failed tests. They include a `testFailure` property to distinguish between automatic ones and your own use of `cy.screenshot()`. Fixes [#2040](https://github.com/cypress-io/cypress/issues/2040).
- There's now an [`after:screenshot` plugin event](https://on.cypress.io/after-screenshot-api) you can use in your `pluginsFile` to work with screenshots after they are taken. This enables you to rename them, move their location, resize them, send them to a service, etc. Fixes [#2039](https://github.com/cypress-io/cypress/issues/2039).
- Added `Cypress.browser` object which contains information about the currently running browser. Fixes [#1919](https://github.com/cypress-io/cypress/issues/1919) and [#1961](https://github.com/cypress-io/cypress/issues/1961).
- Added `Cypress.spec` object which contains information about the currently running spec. Fixes [#1918](https://github.com/cypress-io/cypress/issues/1918).
- Urls displayed in the Command Log during [`cy.visit()`](https://on.cypress.io/visit) are no longer arbitrarily truncated at a set width. Fixes [#1995](https://github.com/cypress-io/cypress/issues/1995).
**Documentation Changes:**
- [Update `cy.screenshot()` doc to include new file naming behavior](https://on.cypress.io/screenshot)
- [Updated "Command Line" doc to include new cache commands](https://on.cypress.io/command-line)
- [Added `Cypress.browser` doc.](https://on.cypress.io/browser)
- [Added `Cypress.spec` doc.](https://on.cypress.io/spec)
- [Added `after:screenshot` plugin event doc.](https://on.cypress.io/after-screenshot-api)