v15.15.0
Fixed 8
- Fixed an issue where the proxy stripped Content-Length: 0 from empty responses and the resulting empty body was re-emitted with Transfer-Encoding: chunked, breaking clients that assume a fixed-length response
- Fixed an issue where component specs that defined local React components could register every describe/it block twice in cypress open when using Vite 8; @cypress/vite-dev-server now excludes component spec files from JSX refresh while leaving Fast Refresh enabled for application source
- Fixed an issue where multi-origin tests using cy.origin could fail to talk to a secondary origin after test isolation; cached spec-bridge window targets are now cleared at the correct lifecycle points
- Fixed an issue where a CSS selector built internally from element attributes could throw an uncaught Syntax error and crash the runner when an attribute value contained CSS-special characters
- Fixed an issue where transient HTTP 500 responses from Cypress Cloud were not retried for idempotent requests
- Fixed an issue in Angular component testing where multiple projects in a monorepo sharing the same directory basename would intermittently fail with spec-resolution errors when run in parallel; the temporary tsconfig.json is now suffixed with a short hash of the full project root path
- Fixed a race during cypress open config reload where rapid changes to cypress.config.js could leave the specs list stale due to overlapping config-reload calls tearing down each other's IPC child processes
- Fixed an issue where a transient Firefox launch failure caused Cypress to exit instead of retrying the browser launch
Deprecated 1
- The cy.end() command has been deprecated and will be removed in a future release; start a new chain of commands off of cy instead
Security 2
- Upgraded socket.io, socket.io-client, and socket.io-parser to address a Denial of Service vulnerability; upgraded related engine.io packages to keep transitive copies aligned
- Upgraded uuid to address an Improper Validation of Specified Index, Position, or Offset in Input vulnerability
Deprecations:
- The
cy.end()command has been deprecated and will be removed in a future release. Instead of using.end()to break a chain, start a new chain of commands off ofcy. Addressed in #33707.
Bugfixes:
- Fixed an issue where the proxy stripped
Content-Length: 0from empty responses (e.g. aDELETE 200with no body) and the resulting empty body was re-emitted withTransfer-Encoding: chunked, breaking clients that assume a fixed-length response. Partially addresses #16469. Fixed in #33754. - Fixed an issue where component specs that defined local React components could register every
describe/itblock twice incypress openwhen using Vite 8, because React refresh treated those specs as HMR self-accepting modules.@cypress/vite-dev-servernow excludes component spec files from JSX refresh while leaving Fast Refresh enabled for application source. Fixes #33750. - Fixed an issue where multi-origin tests using
cy.origincould fail to talk to a secondary origin after test isolation, when the spec-bridge iframe was already present, or when more than one secondary origin became ready around the same time. Cached spec-bridge window targets are now cleared at the correct lifecycle points, improving performance of specs with cy.origin calls. Addressed in #33704. - Fixed an issue where a CSS selector built internally from element attributes could throw an uncaught
Syntax error, unrecognized expressionand crash the runner when an attribute value contained CSS-special characters (for example, an<input>with apatternattribute containing regex metacharacters). Fixes #26967 and #29345. - Fixed an issue where transient HTTP 500 responses from Cypress Cloud were not retried for idempotent requests. Fixed in #33718.
- Fixed an issue in Angular component testing where multiple projects in a monorepo sharing the same directory basename (e.g.
libs/feature-a/feat-shellandlibs/feature-b/feat-shell) would intermittently fail with spec-resolution errors when run in parallel. The temporarytsconfig.jsongenerated by@cypress/webpack-dev-serverwas keyed only on the directory basename, so parallel runs would race on the same file. The temp directory is now suffixed with a short hash of the full project root path, giving each project its own isolated config. Fixes #33634. - Fixed a race during
cypress openconfig reload where rapid changes tocypress.config.jscould leave the specs list stale. Two overlapping config-reload calls would tear down each other's IPC child processes (surfacing asERR_STREAM_DESTROYED), causing both reloads to fail and the specs list to never refresh. Fixed in #33775. - Fixed an issue where a transient Firefox launch failure caused Cypress to exit instead of retrying the browser launch. Fixed in #33770.
Dependency Updates:
- Upgraded
socket.iofrom4.0.1to4.8.3,socket.io-clientfrom4.0.1to4.8.3, andsocket.io-parserfrom4.0.5to4.2.6to address a Denial of Service vulnerability reported in security scans. Theengine.io,engine.io-client, andengine.io-parserdirect deps in@packages/socketwere also bumped to keep transitive copies aligned and the existing browser-side patches applied. Addressed in #33719. - Upgraded
uuidfrom8.3.2to11.1.1to address an Improper Validation of Specified Index, Position, or Offset in Input vulnerability reported in security scans. Addressed in #33765.