Skip to content

Commit 3731cad

Browse files
committed
Merge branch 'develop' into perf/point-sampling-visibility
2 parents df69fc6 + ebc99ee commit 3731cad

File tree

270 files changed

+8550
-2700
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

270 files changed

+8550
-2700
lines changed

.circleci/config.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ workflows:
1212
requires:
1313
- pack-workflows
1414

15+
parameters:
16+
publish-binary-branch:
17+
type: string
18+
default: main
19+
1520
commands:
1621
persist:
1722
steps:
@@ -129,7 +134,8 @@ jobs:
129134
resource_class: small
130135
steps:
131136
- cancel-draft-prs
132-
- checkout
137+
- checkout:
138+
method: blobless
133139
- restore-src-checksum-cache
134140
- persist-to-workspace-and-exit-early
135141
- pack-workflows
@@ -153,7 +159,3 @@ jobs:
153159
fi
154160
- continuation/continue:
155161
configuration_path: .circleci/packed/pipeline.yml
156-
157-
158-
159-

.circleci/src/pipeline/@pipeline.yml

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ version: 2.1
88
chrome-stable-version: &chrome-stable-version "141.0.7390.107"
99
chrome-beta-version: &chrome-beta-version "142.0.7444.34"
1010
firefox-stable-version: &firefox-stable-version "142.0"
11-
base-internal-bullseye: &base-internal-bullseye cypress/base-internal:22.19.0-bullseye
11+
base-internal-trixie: &base-internal-trixie cypress/base-internal:22.19.0-trixie
1212
base-internal-yarn-berry: &base-internal-yarn-berry cypress/base-internal:22.19.0-yarn-berry
1313
# Lowest Node.js version we support of the minimum major version supported
1414
# See https://docs.cypress.io/app/get-started/install-cypress#Nodejs
1515
base-internal-minimum-node: &base-internal-minimum-node cypress/base-internal:20.15.0
16-
ubuntu-2004-current: &ubuntu-2004-current ubuntu-2004:2024.11.1
17-
ubuntu-2004-older: &ubuntu-2004-older ubuntu-2004:2024.05.1
16+
17+
parameters:
18+
publish-binary-branch:
19+
type: string
20+
default: main
1821

1922
orbs:
2023
browser-tools: circleci/[email protected]
@@ -46,15 +49,15 @@ executors:
4649
# the Docker image with Cypress dependencies and Chrome browser
4750
cy-doc:
4851
docker:
49-
- image: *base-internal-bullseye
52+
- image: *base-internal-trixie
5053
# by default, we use "medium" to balance performance + CI costs. bump or reduce on a per-job basis if needed.
5154
resource_class: medium
5255
environment:
5356
PLATFORM: linux
5457

5558
kitchensink-executor:
5659
docker:
57-
- image: *base-internal-bullseye
60+
- image: *base-internal-trixie
5861
# by default, we use "medium" to balance performance + CI costs. bump or reduce on a per-job basis if needed.
5962
resource_class: medium
6063
environment:
@@ -63,7 +66,7 @@ executors:
6366
# Docker image with non-root "node" user
6467
non-root-docker-user:
6568
docker:
66-
- image: *base-internal-bullseye
69+
- image: *base-internal-trixie
6770
user: node
6871
environment:
6972
PLATFORM: linux
@@ -118,7 +121,7 @@ commands:
118121
name: Set environment variable to determine whether or not to persist artifacts
119122
command: |
120123
echo "Setting SHOULD_PERSIST_ARTIFACTS variable"
121-
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "chore/fix_builds" ]]; then
124+
echo 'if ! [[ "$CIRCLE_BRANCH" != "develop" && "$CIRCLE_BRANCH" != "release/"* && "$CIRCLE_BRANCH" != "chore/remove_unused_anchors" ]]; then
122125
export SHOULD_PERSIST_ARTIFACTS=true
123126
fi' >> "$BASH_ENV"
124127
# You must run `setup_should_persist_artifacts` command and be using bash before running this command
@@ -587,7 +590,7 @@ commands:
587590
version: << parameters.google-chrome-for-testing-version >>
588591
install_chromedriver: false
589592

590-
# This code builds better-sqlite3 on Debian 11 (Bullseye). This is necessary because Debian 10 has the oldest glibc version (2.31) that we support.
593+
# This code builds better-sqlite3 on Debian 11 (Bullseye). This is necessary because Debian 11 has the oldest glibc version (2.31) that we support.
591594
#
592595
# Since this is running Docker remote (because the job running the command may not be using an executor with the appropriate glibc version), we need to
593596
# copy the project into the container, and copy the built plugin out of the container because the host running docker does not have access to the
@@ -1366,19 +1369,6 @@ commands:
13661369
paths:
13671370
- cypress/cypress.zip
13681371

1369-
trigger-publish-binary-pipeline:
1370-
steps:
1371-
- run:
1372-
name: "Trigger publish-binary pipeline"
1373-
command: |
1374-
source ./scripts/ensure-node.sh
1375-
echo $SHOULD_PERSIST_ARTIFACTS
1376-
node ./scripts/binary/trigger-publish-binary-pipeline.js
1377-
- persist_to_workspace:
1378-
root: ~/
1379-
paths:
1380-
- triggered_pipeline.json
1381-
13821372
build-cypress-npm-package:
13831373
parameters:
13841374
executor:
@@ -1473,7 +1463,8 @@ jobs:
14731463
default: false
14741464
resource_class: << parameters.resource_class >>
14751465
steps:
1476-
- checkout
1466+
- checkout:
1467+
method: full
14771468
- install-required-node
14781469
- verify-build-setup:
14791470
executor: << parameters.executor >>
@@ -1937,7 +1928,7 @@ jobs:
19371928
parallelism: 1
19381929
working_directory: ~/cypress
19391930
docker:
1940-
- image: *base-internal-bullseye
1931+
- image: *base-internal-trixie
19411932
environment:
19421933
# needed to inform the bootstrap-docker-container.sh script to link the binary in the system-test project directory
19431934
REPO_DIR: /root/cypress
@@ -2471,7 +2462,8 @@ jobs:
24712462
- restore_cached_workspace
24722463
- check-if-binary-exists
24732464
- setup_should_persist_artifacts
2474-
- trigger-publish-binary-pipeline
2465+
- trigger-publish-binary-pipeline:
2466+
target-repo-branch: << pipeline.parameters.publish-binary-branch >>
24752467

24762468
get-published-artifacts:
24772469
<<: *defaults
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
parameters:
2+
target-repo-branch:
3+
type: string
4+
default: main
5+
6+
steps:
7+
- run:
8+
name: Trigger publish-binary pipeline
9+
command: |
10+
if [[ -z "$CIRCLE_TOKEN" ]] || \
11+
[[ -z "$CIRCLE_SHA1" ]] || \
12+
[[ -z "$CIRCLE_JOB" ]] || \
13+
[[ -z "$CIRCLE_WORKFLOW_ID" ]] || \
14+
[[ -z "$CIRCLE_BUILD_URL" ]] || \
15+
[[ -z "$CIRCLE_BRANCH" ]]; then
16+
17+
echo "Missing required environment variables. Skipping pipeline trigger."
18+
exit 1
19+
fi
20+
if [[ -n "$SHOULD_PERSIST_ARTIFACTS" && "$SHOULD_PERSIST_ARTIFACTS" != "true" && "$SHOULD_PERSIST_ARTIFACTS" != "false" ]]; then
21+
echo "SHOULD_PERSIST_ARTIFACTS must be true, false, or undefined. Skipping pipeline trigger."
22+
exit 1
23+
fi
24+
if [[ -z $(which node) ]] || [[ -z $(which curl) ]] || [[ -z $(which jq) ]]; then
25+
echo "Missing required commands. Skipping pipeline trigger. Ensure jq, curl, and node are installed."
26+
exit 1
27+
fi
28+
echo "Determining next binary version..."
29+
export NEXT_VERSION=$(node ./scripts/get-next-version.js)
30+
if [[ $? != 0 ]]; then
31+
echo "Failed to determine next binary version. Skipping pipeline trigger."
32+
exit 1
33+
fi
34+
echo "Next binary version: $NEXT_VERSION"
35+
export BODY=$(cat \<<JSON_BODY_EOF
36+
{
37+
"branch": "<< parameters.target-repo-branch >>",
38+
"parameters": {
39+
"temp_dir": "${TMPDIR:-/tmp}",
40+
"sha": "$CIRCLE_SHA1",
41+
"job_name": "$CIRCLE_JOB",
42+
"triggered_workflow_id": "$CIRCLE_WORKFLOW_ID",
43+
"triggered_job_url": "$CIRCLE_BUILD_URL",
44+
"branch": "$CIRCLE_BRANCH",
45+
"should_persist_artifacts": ${SHOULD_PERSIST_ARTIFACTS:-false},
46+
"binary_version": "$NEXT_VERSION"
47+
}
48+
}
49+
JSON_BODY_EOF
50+
)
51+
if [[ $? != 0 ]]; then
52+
echo "Failed to compose the request body. Skipping pipeline trigger."
53+
exit 1
54+
fi
55+
56+
echo "Triggering new pipeline in cypress-publish-binary project on branch << parameters.target-repo-branch >>..."
57+
curl -X POST \
58+
-o ~/triggered_pipeline.json \
59+
-H "Circle-Token: $CIRCLE_TOKEN" \
60+
-H "Content-Type: application/json" \
61+
-d "$BODY" \
62+
https://circleci.com/api/v2/project/github/cypress-io/cypress-publish-binary/pipeline
63+
64+
if [[ $? != 0 ]]; then
65+
echo "Failed to trigger new pipeline. Skipping pipeline trigger."
66+
exit 1
67+
fi
68+
69+
echo "Pipeline saved to triggered_pipeline.json"
70+
echo "Triggered pipeline: https://app.circleci.com/pipelines/github/cypress-io/cypress-publish-binary/$(jq -r '.number' triggered_pipeline.json)"
71+
- persist_to_workspace:
72+
root: ~/
73+
paths:
74+
- triggered_pipeline.json

.circleci/src/pipeline/workflows/@main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linux-x64:
44
- equal: [ develop, << pipeline.git.branch >> ]
55
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
66
- equal: [ 'update-v8-snapshot-cache-on-develop', << pipeline.git.branch >> ]
7-
- equal: [ 'chore/fix_builds', << pipeline.git.branch >> ]
7+
- equal: [ 'chore/remove_unused_anchors', << pipeline.git.branch >> ]
88
- matches:
99
pattern: /^release\/\d+\.\d+\.\d+$/
1010
value: << pipeline.git.branch >>
@@ -68,7 +68,7 @@ linux-x64:
6868
requires:
6969
- build
7070
- verify-release-readiness:
71-
context: test-runner:npm-release
71+
context: [test-runner:npm-release, org-npm-credentials]
7272
requires:
7373
- build
7474
- server-unit-tests:
@@ -309,7 +309,7 @@ linux-x64:
309309
# use the following branch as well to ensure that v8 snapshot cache updates are fully tested
310310
- 'update-v8-snapshot-cache-on-develop'
311311
- 'feat/cy-prompt'
312-
context: test-runner:npm-release
312+
context: [test-runner:npm-release, org-npm-credentials]
313313
requires:
314314
- ready-to-release
315315

.circleci/src/pipeline/workflows/pull-request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
- external-pr-build
6464
- approve-contributor-pr
6565
- verify-release-readiness:
66-
context: test-runner:npm-release
66+
context: [test-runner:npm-release, org-npm-credentials]
6767
requires:
6868
- internal-pr-build
6969
- external-pr-build

cli/CHANGELOG.md

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,44 @@
11
<!-- See the ../guides/writing-the-cypress-changelog.md for details on writing the changelog. -->
2+
## 15.6.1
3+
4+
_Released 11/18/2025 (PENDING)_
5+
6+
**Bugfixes:**
7+
8+
- Fixed an issue where [`cy.wrap()`](https://docs.cypress.io/api/commands/wrap) would cause infinite recursion and freeze the Cypress App when called with objects containing circular references. Fixes [#24715](https://github.com/cypress-io/cypress/issues/24715). Addressed in [#32917](https://github.com/cypress-io/cypress/pull/32917).
9+
- Fixed an issue where top changes on test retries could cause attempt numbers to show up more than one time in the reporter and cause attempts to be lost in Test Replay. Addressed in [#32888](https://github.com/cypress-io/cypress/pull/32888).
10+
11+
**Misc:**
12+
13+
- The keyboard shortcuts modal now displays the keyboard shortcut for saving Studio changes - `` + `s` for Mac or `Ctrl` + `s` for Windows/Linux. Addressed [#32862](https://github.com/cypress-io/cypress/issues/32862). Addressed in [#32864](https://github.com/cypress-io/cypress/pull/32864).
14+
- The Cursor logo now correctly displays in the External editor dropdown. Addresses [#32062](https://github.com/cypress-io/cypress/issues/32062). Addressed in [#32911](https://github.com/cypress-io/cypress/pull/32911).
15+
216
## 15.6.0
317

4-
_Released 10/20/2025 (PENDING)_
18+
_Released 11/4/2025_
519

620
**Features:**
721

8-
- `cy.prompt()` will now show a warning in the `Get code` modal when there are unsaved changes in `Studio` that will be lost if the user saves the generated code. Addressed in [#32741](https://github.com/cypress-io/cypress/pull/32741).
22+
- Added a 'Self-healed' badge to the Command Log when [`cy.prompt()`](https://docs.cypress.io/api/commands/prompt) steps automatically recover after the element they need is not found in the cache. Addressed in [#32802](https://github.com/cypress-io/cypress/pull/32802).
23+
- [`cy.prompt()`](https://docs.cypress.io/api/commands/prompt) will now show a warning in the `Get code` modal when there are unsaved changes in `Studio` that will be lost if the user saves the generated code. Addressed in [#32741](https://github.com/cypress-io/cypress/pull/32741).
924

1025
**Bugfixes:**
1126

12-
- Fixed an issue where grouped command text jumps up and down when expanding and collapsing in the command log. Addressed in [#32757](https://github.com/cypress-io/cypress/pull/32757).
1327
- Fixed an issue where command snapshots were not correctly displayed in Studio. Addressed in [#32808](https://github.com/cypress-io/cypress/pull/32808).
28+
- Chrome's autofill popup is now disabled when filling address and credit card forms during test execution. We also added some other Chrome flags and preferences that are common when automating browsers. Fixes [#25608](https://github.com/cypress-io/cypress/issues/25608). Addressed in [#32811](https://github.com/cypress-io/cypress/pull/32811).
29+
- Fixed an issue where grouped command text jumps up and down when expanding and collapsing in the command log. Addressed in [#32757](https://github.com/cypress-io/cypress/pull/32757).
1430
- Fixed an issue with grouped console prop items having a hard to read blue color in the console log and duplicate `:` characters being displayed. Addressed in [#32776](https://github.com/cypress-io/cypress/pull/32776).
15-
- Added more context to the error message shown when `cy.prompt()` fails to download. Addressed in [#32822](https://github.com/cypress-io/cypress/pull/32822).
31+
- Added more context to the error message shown when [`cy.prompt()`](https://docs.cypress.io/api/commands/prompt) fails to download. Addressed in [#32822](https://github.com/cypress-io/cypress/pull/32822).
32+
- Fixed an issue where absolute file paths were not correctly determined from the source map when the source map root was updated. Fixes [#32809](https://github.com/cypress-io/cypress/issues/32809).
1633

1734
**Misc:**
1835

1936
- Add top padding for command log labels. Addressed in [#32774](https://github.com/cypress-io/cypress/pull/32774).
2037
- The hitbox for expanding a grouped command has been widened. Addresses [#32778](https://github.com/cypress-io/cypress/issues/32778). Addressed in [#32783](https://github.com/cypress-io/cypress/pull/32783).
2138
- Have cursor on hover of the AUT URL to show as pointer. Addresses [#32777](https://github.com/cypress-io/cypress/issues/32777). Addressed in [#32782](https://github.com/cypress-io/cypress/pull/32782).
39+
- WebKit now prefers a cookie's fully qualified `domain` when requesting a cookie value via [`cy.getCookie()`](https://docs.cypress.io/api/commands/getcookie). If none are found, the cookie's apex domain will be used as a fallback. Addresses [#29954](https://github.com/cypress-io/cypress/issues/29954), [#29973](https://github.com/cypress-io/cypress/issues/29973) and [#30392](https://github.com/cypress-io/cypress/issues/30392). Addressed in [#32852](https://github.com/cypress-io/cypress/pull/32852).
40+
- Make test name header sticky in studio mode and in the tests list. Addresses [#32591](https://github.com/cypress-io/cypress/issues/32591). Addressed in [#32840](https://github.com/cypress-io/cypress/pull/32840)
41+
- The [`cy.exec()`](https://docs.cypress.io/api/commands/exec) type now reflects the correct yielded response type of `exitCode`. Addresses [#32875](https://github.com/cypress-io/cypress/issues/32875). Addressed in [#32885](https://github.com/cypress-io/cypress/pull/32885).
2242

2343
**Dependency Updates:**
2444

@@ -42,7 +62,7 @@ _Released 10/17/2025_
4262
**Misc:**
4363

4464
- Browser detection in Cypress now always prefers 64-bit browser installs to 32-bit browser installs. Addressed in [#32656](https://github.com/cypress-io/cypress/pull/32656).
45-
- Update code button styles and rename Get Code for Code on cy.prompt. Addressed in [#32745](https://github.com/cypress-io/cypress/pull/32745).
65+
- Update code button styles and rename Get Code for Code on [`cy.prompt()`](https://docs.cypress.io/api/commands/prompt). Addressed in [#32745](https://github.com/cypress-io/cypress/pull/32745).
4666

4767
**Dependency Updates:**
4868

@@ -62,15 +82,15 @@ _Released 10/7/2025_
6282
**Bugfixes:**
6383

6484
- Fixed a regression introduced in [`15.0.0`](https://docs.cypress.io/guides/references/changelog#15-0-0) where `dbus` connection error messages appear in docker containers when launching Cypress. Fixes [#32290](https://github.com/cypress-io/cypress/issues/32290).
65-
- Fixed code frames in `cy.origin` so that failed commands will show the correct line/column within the corresponding spec file. Addressed in [#32597](https://github.com/cypress-io/cypress/pull/32597).
85+
- Fixed code frames in [`cy.origin()`](https://docs.cypress.io/api/commands/origin) so that failed commands will show the correct line/column within the corresponding spec file. Addressed in [#32597](https://github.com/cypress-io/cypress/pull/32597).
6686
- Fixed Cypress cloud requests so that they properly verify SSL certificates. Addressed in [#32629](https://github.com/cypress-io/cypress/pull/32629).
6787

6888
**Misc:**
6989

7090
- Added a dropdown menu in the Command Log that includes actions like Open in IDE and Add New Test in Studio, along with test preferences such as Auto-Scroll and Hide HTTP Requests. Addresses [#32556](https://github.com/cypress-io/cypress/issues/32556) and [#32558](https://github.com/cypress-io/cypress/issues/32558). Addressed in [#32611](https://github.com/cypress-io/cypress/pull/32611).
7191
- Updated the Studio test editing header to include a Back button. This change ensures the Specs button remains functional for expanding or collapsing the specs panel. Addresses [#32556](https://github.com/cypress-io/cypress/issues/32556) and [#32558](https://github.com/cypress-io/cypress/issues/32558). Addressed in [#32611](https://github.com/cypress-io/cypress/pull/32611).
7292
- Fixed the Studio panel resizing when dragging. Addressed in [#32584](https://github.com/cypress-io/cypress/pull/32584).
73-
- The Next button now maintains consistent visibility during stepping sessions when using `cy.pause`, staying visible but disabled when no immediate next command is available, providing clear visual feedback to users about stepping state. Addresses [#32476](https://github.com/cypress-io/cypress/issues/32476). Addressed in [#32536](https://github.com/cypress-io/cypress/pull/32536).
93+
- The Next button now maintains consistent visibility during stepping sessions when using [`cy.pause()`](https://docs.cypress.io/api/commands/pause), staying visible but disabled when no immediate next command is available, providing clear visual feedback to users about stepping state. Addresses [#32476](https://github.com/cypress-io/cypress/issues/32476). Addressed in [#32536](https://github.com/cypress-io/cypress/pull/32536).
7494

7595
**Dependency Updates:**
7696

@@ -107,7 +127,7 @@ _Released 9/9/2025_
107127

108128
**Bugfixes:**
109129

110-
- We now properly partition the `host` with `port` when caching family DNS lookups. This resolves issues where some `localhost` URLs were not resolving in `cy.visit()` in Cypress when they should have. Fixes [#25397](https://github.com/cypress-io/cypress/issues/25397). Addressed in [#32403](https://github.com/cypress-io/cypress/pull/32403).
130+
- We now properly partition the `host` with `port` when caching family DNS lookups. This resolves issues where some `localhost` URLs were not resolving in [`cy.visit()`](https://docs.cypress.io/api/commands/visit) in Cypress when they should have. Fixes [#25397](https://github.com/cypress-io/cypress/issues/25397). Addressed in [#32403](https://github.com/cypress-io/cypress/pull/32403).
111131

112132
**Dependency Updates:**
113133

@@ -119,7 +139,7 @@ _Released 09/02/2025_
119139

120140
**Features:**
121141

122-
- Expanded `cy.press()` to support more key types. Addresses [#31051](https://github.com/cypress-io/cypress/issues/31051) and [#31488](https://github.com/cypress-io/cypress/issues/31488). Addressed in [#31496](https://github.com/cypress-io/cypress/pull/31496).
142+
- Expanded [`cy.press()`](https://docs.cypress.io/api/commands/press) to support more key types. Addresses [#31051](https://github.com/cypress-io/cypress/issues/31051) and [#31488](https://github.com/cypress-io/cypress/issues/31488). Addressed in [#31496](https://github.com/cypress-io/cypress/pull/31496).
123143

124144
**Bugfixes:**
125145

cli/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
"@packages/root": "0.0.0-development",
7575
"@types/bluebird": "3.5.33",
7676
"@types/chai": "4.2.15",
77-
"@types/chai-jquery": "1.1.40",
77+
"@types/chai-jquery": "1.1.43",
7878
"@types/jquery": "3.3.31",
7979
"@types/lodash": "4.14.168",
8080
"@types/minimatch": "3.0.5",

0 commit comments

Comments
 (0)