Commit Graph

92 Commits

Author SHA1 Message Date
Bill Glesias
4d904e272f chore: refactor @packages/https-proxy to TypeScript and use vitest instead of mocha (#32718)
* chore: convert @packages/https-proxy to TypeScript and use vitest instead of mocha

* chore: address comments from code review

* Update packages/https-proxy/vitest.config.ts
2025-10-15 14:00:41 -04:00
Bill Glesias
cf73b8a1d9 chore: package @packages/network as an independent bundle (#32633)
* chore: refactor network into two packages, network and network-tools. network-tools is expected to be used in simple environments, where network is intended to be used in the node context. additionally, makes these packages bundable and removes the ts-node entrypoint to make ESM possible.

* chore: sync cloud validations after building packages as the network libs are needed

* chore: fix cloud specs

* remove building packages for requiring build step for creating publish artifacts

* update ts-ignores with reasoning and fix cookie bug (though it shouldn't do this by reference

* bump cache

* update pull-request job as well
2025-10-10 13:41:51 -04:00
Jennifer Shehane
24304a62d0 chore: update errors to be stringified when object (#32663)
* chore: update errors to be stringified when object

* handle circular dependencies

* add serialize-error npm package

* downgrade serialize-error to cjs compatible version

* move to prod dep

* move safeErrorSerialize further out into Cloud dir

* remove redundancies in studio tests

* handle undefined

* fix undefined
2025-10-09 10:36:46 -04:00
Matt Schile
74bae6484a internal: (studio) display cert error (#32657) 2025-10-07 10:07:02 -06:00
Ryan Manuel
e3f4064ac1 internal: rename excludeFromAI type (#32653)
* Create cy-prompt-development.md

* chore: cy prompt infrastructure (#31748)

* feat: cy prompt infrastructure

* refactor and add tests

* refactor

* rename experimental config

* prompt

* fix test

* Update cy-prompt-development.md

* Update cy-prompt-development.md

* PR comments

* Update packages/server/lib/cloud/api/cy-prompt/get_cy_prompt_bundle.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* PR comments

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix test

* Delete packages/server/lib/cloud/StudioLifecycleManager.ts

* Delete packages/server/test/unit/cloud/StudioLifecycleManager_spec.ts

* chore: add cdp connection to cy prompt (#31806)

* chore: add cdp connection to cy prompt

* minor fix

* fix type build

* try to fix build

* Update packages/server/lib/browsers/browser-cri-client.ts

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* Update packages/server/lib/browsers/browser-cri-client.ts

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* do not support prompt in firefox or webkit

* rework timing of lifecycle

* refactor

* fix tests

* troubleshooting

* troubleshooting

* fix tests

* additional troubleshooting

* additional troubleshooting

* additional troubleshooting

* attempt to fix build

* add back

* debugging

* debugging

* debugging

* debugging

* clean up

* fix unit tests

* rework

---------

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* chore: create infrastructure to support backend function in cy.prompt (#31803)

* chore: add promptBackend as an additional Cypress-attached function

* Update packages/app/src/runner/event-manager.ts

* update types

* fix types

* fix spacing

* refactor

* additional refactor

* fix type build

* fix build

* refactor

* reword messages

* fix

* debugging

* undo debugging

* PR comment

* fix tests

* fix tests

* fix tests

* fix test

* chore: add watcher for cy-prompt development (#31810)

* chore: add watcher for cy-prompt development

* test caching

* fix types

* chore: turn on beta deployments for cy-prompt

* internal: (cy.prompt) handle errors better in the command definition (#31835)

* internal: (cy.prompt) handle errors better in the command definition

* internal: (cy.prompt) add timeout and handle loading errors more cleanly

* add process environment variable

* clean up test

* update JSDoc

* chore: handle errors (#31854)

* chore: handle errors

* Fix ts, add test

* Fix error title

* Fix ts

* Fix ts

* chores: (cy.prompt) refactor routing to support both app and driver (#31891)

* chore: Share error utils with the cloud (#31887)

* share error utils with cloud

* additional rework

* Fix command, add isOpenMode

* Add / fix test

* fix ts

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* internal: (cy.prompt) add infrastructure to support a Get Code modal (#31904)

* chore: (cy.prompt) add infrastructure to support a Get Code modal

* fix tests

* fix code paths

* Update eject button styles

* handle errors

* update types

* Update packages/server/lib/socket-base.ts

* Fix cy test

* update readme

---------

Co-authored-by: estrada9166 <estrada9166@gmail.com>

* chore: (cy.prompt) refactor getTestsState to take a runnable id (#31965)

* chore: (cy.prompt) refactor getTestsState to take a runnable id

* fix tests

* minor tweak

* chore: (cy.prompt) add manifest for all of the cloud delivered files (#31922)

* chore: (cy.prompt) add manifest for all of the cloud delivered files

* fix tests and remove environment variables

* update strategy

* fix build

* rework

* require manifest

* clean up

* refactor

* refactor

* Update packages/server/lib/cloud/cy-prompt/CyPromptLifecycleManager.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix test

---------

Co-authored-by: Matt Schile <mschile@cypress.io>

* feat: add cy prompt more info needed modal (WIP) (#31970)

* feat: add cy prompt more info needed modal

* Reset promptStore

* additional things exposed for more info

* rework

* fix tests

* fix build

* fix types

* fix types

* Update packages/app/src/runner/event-manager.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* reefactor

* chore: (cy.prompt) rework the file save lifecycle

* rework types

* add unit tests

---------

Co-authored-by: estrada9166 <estrada9166@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: (cy.prompt) ensure that we do not attach a vue ref to the react root in the cy.prompt modals (#32011)

* fix: (studio) ensure that we do not attach a vue ref to the react root in the studio panel

* fix test

* chore: Handle cy-prompt error to the cloud (#32009)

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* chore: display prompt error message (#32016)

* add createCloudRequest to cloudApi, handle errors during createCyPromptServer

* render the get code button on failure

* chore: update types

* chore: move CT and browser error to cloud (#32077)

* feat: (cy.prompt) give cy.prompt access to recording information (#32110)

* feat: (cy.prompt) give cy.prompt access to recording information

* undo bad refactor

* undo bad refactor

* undo bad refactor

* rename

* fix typo

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update cy-prompt-development.md

* Update cy-prompt-development.md

* Update cy-prompt-development.md

* chore: add CYPRESS_INTERNAL_SIMULATE_OPEN_MODE to simulate running Cypress tests in open mode (#32114)

* chore: (cy.prompt) ensure to strip out paths from all data when reporting errors in prompt (#32134)

* fix: (cy.prompt) ensure to strip out paths from all data when reporting errors in prompt

* refactor

* update tests

* fix logic error with protocol

* add event manager to get code

* Apply suggestions from code review

* fix: (cy.prompt) improve the get project options performance by running promises in parallel (#32196)

* fix: (cy.prompt) improve the get project options performance by running promises in parallel

* add awaits in test

* bump cache

* Update packages/server/lib/cloud/studio/StudioLifecycleManager.ts

* fix build

* chore: cleanup

* blank

* Update trigger-publish-binary-pipeline.js

* Update packages/server/test/unit/socket_spec.js

* get rid of environment variable

* fix: (cy.prompt) ensure to reset the prompt state when the event manager is torn down (indicating that we're no longer on the runner page) (#32301)

* fix: (cy.prompt) ensure to reset the prompt state when the event manager is torn down (indicating that we're no longer on the runner page)

* move test

* fix lint issue

* feat: (cy.prompt) introduce the concept of log collapse state being open/closed by default (#32262)

* feat: (cy.prompt) introduce the concept of logs' collapse state being open/closed by default

* update tests

* rename

* PR comments

* fix test due to bad merge of develop

* chore: Only allow experimentalPromptCommand within e2e config (#32435)

* chore: Only allow experimentalPromptCommand within e2e config

* Fix config

* Update tests

* Update test, update types

* Fix test and types

* fix tests

* Add types

* Update cli/types/cypress.d.ts

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* Update workflows.yml

* Add optional cyPromptManagerPromise property

* Implement error handling in CyPromptManager

Added a new method to handle errors uniformly in CyPromptManager.

* Fix indentation in socket_spec.js

* fix: (cy.prompt) handle when the prompt is executed by in CT or when the experiment is not enabled (#32470)

* fix: (cy.prompt) handle when the prompt is executed by in CT or when the experiment is not enabled

* Update packages/driver/cypress/e2e/commands/prompt/prompt.cy.ts

* Update packages/driver/cypress/e2e/commands/prompt/prompt.cy.ts

* update name of errors

* Bump cache version to 9-15-2025

* update yarn.lock

* fixes

* fix snapshot

* fix snapshot

* internal: fix get code button to be purple with correct margin (#32504)

* feat: (cy.prompt) update the types of prompt (#32529)

* fix: move currentMoreInfoNeededModalInfo.onCancel to onClose (#32559)

* internal: (cy.prompt) various improvements to error messages and time outs (#32582)

* internal: (cy.prompt) various improvements to error messages and timeouts

* fix test

* remove dead code

* Update packages/driver/src/cy/commands/prompt/index.ts

* update prompt experiment description

* fix build

* fix tests

* fix tests

* fix test

* update error message

* Update packages/server/lib/experiments.ts

Co-authored-by: Tim Griesser <tgriesser10@gmail.com>

---------

Co-authored-by: Tim Griesser <tgriesser10@gmail.com>

* internal: (cy.prompt) ensure that get code can properly work with prompts in cy.origin (#32596)

* internal: (cy.prompt) ensure that get code can properly work with prompts in cy.origin

* additional tests

* additional tests

* Apply suggestions from code review

* code review comment

* fix merge

* fix merge

* Update packages/data-context/graphql/schemaTypes/index.ts

* update workflow

* blank

* persist binaries

* chore: display custom link title (#32567)

* chore: display custom link title

* Add test

* Pass docs as second argument of the error

* Revert changes

* Use openExternal for links

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* update

* internal: (cy.prompt) do not retry on cert failures (#32624)

* internal: (cy.prompt) do not retry on cert failures

* tests and clean up

* additional cleanup and add error message for prompt

* fix unit tests

* Update report_studio_error.ts

* Update packages/network/lib/agent.ts

* cursor comment

* fix build

* fix build

* fix test

* fix build

* fix build

* fix build

* fix build

* fix build

* revert

* Update packages/driver/src/cypress/error_messages.ts

* Update packages/driver/cypress/e2e/commands/prompt/prompt-initialization-error.cy.ts

* fix build

* cursor comment

* clean up

* fix: (cy.prompt) rename exclude from AI to parameters

* fix: (cy.prompt) rename exclude from AI to privateNoCache

* further rename and build binary

* Update packages/frontend-shared/src/locales/en-US.json

* fix tests

* rename to placeholders

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Alejandro Estrada <estrada9166@gmail.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2025-10-06 16:37:59 -05:00
Ryan Manuel
df047b0a42 feat: cy.prompt experimental command [Feature Flagged] (#31752)
* Create cy-prompt-development.md

* chore: cy prompt infrastructure (#31748)

* feat: cy prompt infrastructure

* refactor and add tests

* refactor

* rename experimental config

* prompt

* fix test

* Update cy-prompt-development.md

* Update cy-prompt-development.md

* PR comments

* Update packages/server/lib/cloud/api/cy-prompt/get_cy_prompt_bundle.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* PR comments

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix test

* Delete packages/server/lib/cloud/StudioLifecycleManager.ts

* Delete packages/server/test/unit/cloud/StudioLifecycleManager_spec.ts

* chore: add cdp connection to cy prompt (#31806)

* chore: add cdp connection to cy prompt

* minor fix

* fix type build

* try to fix build

* Update packages/server/lib/browsers/browser-cri-client.ts

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* Update packages/server/lib/browsers/browser-cri-client.ts

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* do not support prompt in firefox or webkit

* rework timing of lifecycle

* refactor

* fix tests

* troubleshooting

* troubleshooting

* fix tests

* additional troubleshooting

* additional troubleshooting

* additional troubleshooting

* attempt to fix build

* add back

* debugging

* debugging

* debugging

* debugging

* clean up

* fix unit tests

* rework

---------

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* chore: create infrastructure to support backend function in cy.prompt (#31803)

* chore: add promptBackend as an additional Cypress-attached function

* Update packages/app/src/runner/event-manager.ts

* update types

* fix types

* fix spacing

* refactor

* additional refactor

* fix type build

* fix build

* refactor

* reword messages

* fix

* debugging

* undo debugging

* PR comment

* fix tests

* fix tests

* fix tests

* fix test

* chore: add watcher for cy-prompt development (#31810)

* chore: add watcher for cy-prompt development

* test caching

* fix types

* chore: turn on beta deployments for cy-prompt

* internal: (cy.prompt) handle errors better in the command definition (#31835)

* internal: (cy.prompt) handle errors better in the command definition

* internal: (cy.prompt) add timeout and handle loading errors more cleanly

* add process environment variable

* clean up test

* update JSDoc

* chore: handle errors (#31854)

* chore: handle errors

* Fix ts, add test

* Fix error title

* Fix ts

* Fix ts

* chores: (cy.prompt) refactor routing to support both app and driver (#31891)

* chore: Share error utils with the cloud (#31887)

* share error utils with cloud

* additional rework

* Fix command, add isOpenMode

* Add / fix test

* fix ts

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* internal: (cy.prompt) add infrastructure to support a Get Code modal (#31904)

* chore: (cy.prompt) add infrastructure to support a Get Code modal

* fix tests

* fix code paths

* Update eject button styles

* handle errors

* update types

* Update packages/server/lib/socket-base.ts

* Fix cy test

* update readme

---------

Co-authored-by: estrada9166 <estrada9166@gmail.com>

* chore: (cy.prompt) refactor getTestsState to take a runnable id (#31965)

* chore: (cy.prompt) refactor getTestsState to take a runnable id

* fix tests

* minor tweak

* chore: (cy.prompt) add manifest for all of the cloud delivered files (#31922)

* chore: (cy.prompt) add manifest for all of the cloud delivered files

* fix tests and remove environment variables

* update strategy

* fix build

* rework

* require manifest

* clean up

* refactor

* refactor

* Update packages/server/lib/cloud/cy-prompt/CyPromptLifecycleManager.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix test

---------

Co-authored-by: Matt Schile <mschile@cypress.io>

* feat: add cy prompt more info needed modal (WIP) (#31970)

* feat: add cy prompt more info needed modal

* Reset promptStore

* additional things exposed for more info

* rework

* fix tests

* fix build

* fix types

* fix types

* Update packages/app/src/runner/event-manager.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* reefactor

* chore: (cy.prompt) rework the file save lifecycle

* rework types

* add unit tests

---------

Co-authored-by: estrada9166 <estrada9166@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: (cy.prompt) ensure that we do not attach a vue ref to the react root in the cy.prompt modals (#32011)

* fix: (studio) ensure that we do not attach a vue ref to the react root in the studio panel

* fix test

* chore: Handle cy-prompt error to the cloud (#32009)

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* chore: display prompt error message (#32016)

* add createCloudRequest to cloudApi, handle errors during createCyPromptServer

* render the get code button on failure

* chore: update types

* chore: move CT and browser error to cloud (#32077)

* feat: (cy.prompt) give cy.prompt access to recording information (#32110)

* feat: (cy.prompt) give cy.prompt access to recording information

* undo bad refactor

* undo bad refactor

* undo bad refactor

* rename

* fix typo

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update packages/server/test/unit/modes/record_spec.js

* Update cy-prompt-development.md

* Update cy-prompt-development.md

* Update cy-prompt-development.md

* chore: add CYPRESS_INTERNAL_SIMULATE_OPEN_MODE to simulate running Cypress tests in open mode (#32114)

* chore: (cy.prompt) ensure to strip out paths from all data when reporting errors in prompt (#32134)

* fix: (cy.prompt) ensure to strip out paths from all data when reporting errors in prompt

* refactor

* update tests

* fix logic error with protocol

* add event manager to get code

* Apply suggestions from code review

* fix: (cy.prompt) improve the get project options performance by running promises in parallel (#32196)

* fix: (cy.prompt) improve the get project options performance by running promises in parallel

* add awaits in test

* bump cache

* Update packages/server/lib/cloud/studio/StudioLifecycleManager.ts

* fix build

* chore: cleanup

* blank

* Update trigger-publish-binary-pipeline.js

* Update packages/server/test/unit/socket_spec.js

* get rid of environment variable

* fix: (cy.prompt) ensure to reset the prompt state when the event manager is torn down (indicating that we're no longer on the runner page) (#32301)

* fix: (cy.prompt) ensure to reset the prompt state when the event manager is torn down (indicating that we're no longer on the runner page)

* move test

* fix lint issue

* feat: (cy.prompt) introduce the concept of log collapse state being open/closed by default (#32262)

* feat: (cy.prompt) introduce the concept of logs' collapse state being open/closed by default

* update tests

* rename

* PR comments

* fix test due to bad merge of develop

* chore: Only allow experimentalPromptCommand within e2e config (#32435)

* chore: Only allow experimentalPromptCommand within e2e config

* Fix config

* Update tests

* Update test, update types

* Fix test and types

* fix tests

* Add types

* Update cli/types/cypress.d.ts

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* Update workflows.yml

* Add optional cyPromptManagerPromise property

* Implement error handling in CyPromptManager

Added a new method to handle errors uniformly in CyPromptManager.

* Fix indentation in socket_spec.js

* fix: (cy.prompt) handle when the prompt is executed by in CT or when the experiment is not enabled (#32470)

* fix: (cy.prompt) handle when the prompt is executed by in CT or when the experiment is not enabled

* Update packages/driver/cypress/e2e/commands/prompt/prompt.cy.ts

* Update packages/driver/cypress/e2e/commands/prompt/prompt.cy.ts

* update name of errors

* Bump cache version to 9-15-2025

* update yarn.lock

* fixes

* fix snapshot

* fix snapshot

* internal: fix get code button to be purple with correct margin (#32504)

* feat: (cy.prompt) update the types of prompt (#32529)

* fix: move currentMoreInfoNeededModalInfo.onCancel to onClose (#32559)

* internal: (cy.prompt) various improvements to error messages and time outs (#32582)

* internal: (cy.prompt) various improvements to error messages and timeouts

* fix test

* remove dead code

* Update packages/driver/src/cy/commands/prompt/index.ts

* update prompt experiment description

* fix build

* fix tests

* fix tests

* fix test

* update error message

* Update packages/server/lib/experiments.ts

Co-authored-by: Tim Griesser <tgriesser10@gmail.com>

---------

Co-authored-by: Tim Griesser <tgriesser10@gmail.com>

* internal: (cy.prompt) ensure that get code can properly work with prompts in cy.origin (#32596)

* internal: (cy.prompt) ensure that get code can properly work with prompts in cy.origin

* additional tests

* additional tests

* Apply suggestions from code review

* code review comment

* fix merge

* fix merge

* Update packages/data-context/graphql/schemaTypes/index.ts

* update workflow

* blank

* persist binaries

* chore: display custom link title (#32567)

* chore: display custom link title

* Add test

* Pass docs as second argument of the error

* Revert changes

* Use openExternal for links

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* update

* internal: (cy.prompt) do not retry on cert failures (#32624)

* internal: (cy.prompt) do not retry on cert failures

* tests and clean up

* additional cleanup and add error message for prompt

* fix unit tests

* Update report_studio_error.ts

* Update packages/network/lib/agent.ts

* cursor comment

* fix build

* fix build

* fix test

* fix build

* fix build

* fix build

* fix build

* fix build

* revert

* Update packages/driver/src/cypress/error_messages.ts

* Update packages/driver/cypress/e2e/commands/prompt/prompt-initialization-error.cy.ts

* fix build

* cursor comment

* add changelog entry

* clean up

* Update packages/app/src/store/prompt-store.ts

* Bump cache version to 10-3-2025

Updated cache version to trigger CI cache recreation.

* Revise CHANGELOG for new features and fixes

Updated changelog with new features and bug fixes.

* index on feat/cy-prompt: 3cbcf6c336 Bump cache version to 10-3-2025

* index on feat/cy-prompt: 3cbcf6c336 Bump cache version to 10-3-2025

* index on feat/cy-prompt: 3cbcf6c336 Bump cache version to 10-3-2025

* blank

* fix build

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
Co-authored-by: Alejandro Estrada <estrada9166@gmail.com>
Co-authored-by: Matt Schile <mschile@cypress.io>
Co-authored-by: Tim Griesser <tgriesser10@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
2025-10-04 09:01:00 -05:00
Matt Schile
b1f61fb23b internal: (studio) remove CYPRESS_ENABLE_CLOUD_STUDIO_AI env (#32625) 2025-10-03 13:51:13 -06:00
Matt Schile
43404f1e92 internal: (studio) pass the getProjectOptions function (#32573) 2025-10-02 17:37:02 -06:00
Ryan Manuel
9837082fa4 internal: (studio) do not retry on cert failures (#32631)
* fix: ensure that all calls to api.cypress.io and cloud.cypress.io properly set rejectUnauthorized

* fix: ensure that all calls to api.cypress.io and cloud.cypress.io properly set rejectUnauthorized

* Fix SSL certificate verification for cloud requests

Fixed SSL certificate verification for Cypress cloud requests.

* fix: ensure that all calls to api.cypress.io and cloud.cypress.io properly set rejectUnauthorized

* internal: (studio) do not retry on cert failures

* Update packages/server/test/unit/cloud/api/studio/post_studio_session_spec.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* Update packages/server/test/unit/cloud/api/studio/post_studio_session_spec.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix types

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
2025-10-02 17:58:01 -05:00
Ryan Manuel
3b80385210 fix: ensure that all calls to api.cypress.io and cloud.cypress.io properly set rejectUnauthorized (#32629)
* fix: ensure that all calls to api.cypress.io and cloud.cypress.io properly set rejectUnauthorized

* fix: ensure that all calls to api.cypress.io and cloud.cypress.io properly set rejectUnauthorized

* Fix SSL certificate verification for cloud requests

Fixed SSL certificate verification for Cypress cloud requests.

* fix: ensure that all calls to api.cypress.io and cloud.cypress.io properly set rejectUnauthorized

* Update packages/data-context/src/sources/UtilDataSource.ts

* fix tests

* fix tests
2025-10-02 15:52:07 -05:00
Cacie Prins
5719c84683 chore: migrate server and webpack-batteries-included-preprocessor to modern eslint (#32343)
* eslint migration for webpack-batteries-included

* some debug

* rm debug?

* rm debug

* update migration manifest
2025-09-05 13:46:29 -04:00
Cacie Prins
e463fdbc61 fix: Redirect spammy electron stderr to a debug sink (#32188)
* wip: system test to reproduce

* system test for alsa stderr

* split cypress from 3rd party stderr at parent process to electron child

* rm garbage warning regexes

* fix newline behavior when parsing internal stderr

* migrate left over console errors

* clean up system test name

* fix typed import

* extract stderr splitting to separate pkg so runner can use @packages/error

* rm new err log from packherd-quire

* handle backpressure

* docs

* some unit tests & coverage for stderr-filtering

* unit tests

* no longer test regexp specific output in spawn unit tests

* filter enabled debug namespaces rather than just cypress namespacesc

* revise stream splitting et al

* try to fix v8 snapshot build??

* fix console.log assertion

* add missing eslint config

* rm unused spies

* fix regexp for optional leading wsp and ansi on debug entries

* update unit tests because sinon

* lint

* colon..

* build stderr-filtering before checking if binary exists

* adds TagStream transform stream, fixes stderr from child proc config

* add build-prod script for stderr-filtering

* changelog

* properly handle backpressure in prefixed content transform stream

* use standard tsconfig?

* better tsconfig

* Add pkgStderrFiltering to monorepoPaths

* add \"files\" manifest

* pipe all stderr to stderr when CYPRESS_INTERNAL_DEBUG_ELECTRON is enabled

* rm explicit build of stderr-filtering in check-if-binary-exists step

* ensure all dependencies of scripts/ are built before scripts are executed in the check-if-binary-exists command

* fix dev version ref

* swap logic

* add stdin piping

* fix exec name on the run-on-dependencies command to be more useful

* use correct env

* rm obsolete type refs

* simplify stderr-filtering public iface, pipe cy-in-cy stderr through filtering tx

* bust cache

* fix mocks

* fix v8-snapshot

* move stderrfiltering to dev pkg in cli

* skip integrity check in ci, if they are out of date things should fail anyway

* copypasta over a portion of stderr-filtering to cli, since cli cannot import @packages

* Delete issues.md

* rm special filtering for cy in cy

* rm too narrow rules file

---------

Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2025-08-19 17:05:53 -04:00
Tyler Biethman
5260488a0b internal: updating studio-server initialization with renderer APIs (#32204)
* feat: updating studio-server initialization with renderer APIs

* Updating gen types

* Adding unit tests, adjusting types

* Removing electron dep to better follow existing patterns in server; parallelizing browser state reset during studio initialization

* Deferring StudioElectron creation until Studio AI init

* Fixing unit test

* Clean up debug logs

* PR updates
2025-08-15 14:54:07 -05:00
Ryan Manuel
d12e94524a chore: (studio) ensure to strip out paths from all data when reporting errors in studio (#32135)
* fix: (studio) ensure to strip out paths from all data when reporting errors in prompt and studio

* disable with environment variable
2025-07-31 20:59:32 -05:00
Matt Schile
b47cb0ec21 internal: (studio) remove studioAiAvailable property (#32072) 2025-07-22 18:51:43 -06:00
Adam Stone-Lord
f65ac036aa internal: (studio) wire up cloud studio AI enabled feature flag (#32055)
* internal: (studio) wire up cloud studio AI enabled feature flag

* actually pass props

* fix types
2025-07-21 11:21:57 -04:00
Ryan Manuel
a58a19eb3a Merge branch 'develop' into release/15.0.0 2025-07-03 21:12:15 -05:00
Tim Griesser
7a9185e6c0 fix: force CloudRequest to use 443 for https requests (#31992)
* chore: force CloudRequest to use 443 for https requests

* Update packages/network/lib/agent.ts

Co-authored-by: Ryan Manuel <ryanm@cypress.io>

* Update CHANGELOG.md

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2025-07-03 21:12:01 -05:00
Adam Stone-Lord
e05de87b51 internal: (studio) show error and allow retry when studio cannot be initialized (#31951) 2025-07-03 12:07:44 -04:00
Ryan Manuel
8a6d1d666b Merge branch 'develop' into release/15.0.0 2025-07-02 10:10:59 -05:00
Ryan Manuel
954847c613 internal: (studio) add manifest for all of the cloud delivered files (#31923)
* internal: (studio) add manifest for all of the cloud delivered files

* fix tests and environment variables

* update strategy

* fix tests

* rework

* Apply suggestions from code review

* require manifest

* require manifest

* clean up

* refactor

* Update packages/server/lib/cloud/studio/StudioLifecycleManager.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* refactor

* just use the string

* try and fix test

* try and fix test

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-01 22:21:39 -05:00
Matt Schile
b9e47e08ee internal: remove CYPRESS_ENABLE_CLOUD_STUDIO env (#31976) 2025-07-01 14:24:04 -06:00
Tim Griesser
ed8e7ea8a4 chore: continuing with request to axios changes (#31915) 2025-06-27 17:18:12 -04:00
Tim Griesser
31c3455b6d chore: normalize options passed via axios to the agent layer (#31905)
* fix: normalize options passed via axios to the agent layer

* improvements to testing, using debugging-proxy

* clean up & add test cases for authorization

* add follow-redirects as explicit dependency
2025-06-23 14:52:46 -04:00
Ryan Manuel
4081664454 internal: (studio) add telemetry around time it takes to download the bundle and initialize studio fully (#31834)
* internal: (studio) add telemetry around time it takes to download the bundle and initialize studio fully

* fix tests
2025-06-06 14:37:49 -05:00
Ryan Manuel
fed81d47c8 internal: (studio) set up hot reloading for the studio bundle (#31796)
* internal: (studio) set up hot reloading for the studio bundle

* fix types

* floating promise

* Update packages/server/test/unit/cloud/get_cloud_metadata_spec.ts

* fix tests

* index on ryanm/internal/hot-reloading: b6a9137258 Update packages/server/test/unit/cloud/get_cloud_metadata_spec.ts

* index on ryanm/internal/hot-reloading: b6a9137258 Update packages/server/test/unit/cloud/get_cloud_metadata_spec.ts

* index on ryanm/internal/hot-reloading: b6a9137258 Update packages/server/test/unit/cloud/get_cloud_metadata_spec.ts

* fix tests

* fix binary

* fix tests

* minor tweaks

* code cleanup

* update guide

* PR comments

---------

Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
2025-05-30 13:38:42 -05:00
Adam Stone-Lord
6d1d2d1336 internal: show loading and error statuses in studio panel, add download timeout (#31633)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2025-05-13 15:42:50 -04:00
Ryan Manuel
e3a7994ba4 internal: (studio) quality of life improvements for the studio lifecycle (#31663)
* internal: (studio) quality of life improvements for the studio lifecycle

* disable studio error reporting for cypress in cypress
2025-05-09 15:44:52 -05:00
renovate[bot]
6ac467a692 chore(deps): update dependency chai to v3 (#31558)
* chore(deps): update dependency chai to v3

* empty commit

* update some tests to new syntax

* update tests + bump cache

* update system test expect

* update more chai usage

* update more chai usage

* cleanup

* fix some leftover empty functions

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Jennifer Shehane <shehane.jennifer@gmail.com>
2025-05-08 13:29:51 -04:00
Ryan Manuel
ad353fcc0f internal: (studio) add network agent to the studio session call (#31617)
* internal: (studio) add network agent to the studio session call

* Update packages/server/lib/cloud/api/studio/post_studio_session.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
2025-04-30 21:25:34 -05:00
Ryan Manuel
602ff2aa77 internal: (studio) when errors occur in development, log them and do not throw and do not send to Sentry (#31614)
* chore: (studio) when errors occur in development, log them and do not throw and do not send to Sentry

* Update packages/server/lib/cloud/api/studio/report_studio_error.ts

* chore: (studio) when errors occur in development, log them and do not throw and do not send to Sentry

* chore: (studio) when errors occur in development, log them and do not throw and do not send to Sentry
2025-04-30 13:56:06 -05:00
Ryan Manuel
d435ddaac3 internal: rework studio handshake to allow better caching (#31599)
* feat: (studio) Capture telemetry for studio initialization

* fixes

* revert type changes

* add studio lifecycle manager

* fix studio router

* finish lifecycle manager, add test coverage

* fix types

* fix types for real

* fix types actually

* fix lint

* fix routes spec

* fix lint, add try/catch

* remove work to capture telemetry

* didn't mean to remove this part

* fix types

* remove test for other branch

* feedback

* fix test

* encapsulate more logic into studio lifecycle manager

* feedback

* fix tests

* blank

* feedback

* Update packages/app/src/runner/event-manager.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix lint

* fix hiding runner ui

* update test

* re-work lifecycle manager implementation to not use EventEmitter

* fix listener registration logic

* ensure that studio still loads even when cloud bundle doesn't

* feedback

* feedback

* use getter for isProtocolEnabled, report studio manager initialization errors, remove references for isStudioProtocolEnabled

* clean up listeners when initialization errors

* Update packages/server/lib/StudioLifecycleManager.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* Update packages/server/lib/StudioLifecycleManager.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* Update packages/server/lib/StudioLifecycleManager.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* feedback

* fix: rework studio handshake to allow better caching

* merge conflict

* slight refactor

* update types

* Update packages/server/lib/cloud/api/studio/post_studio_session.ts

* Apply suggestions from code review

* fix test

* PR comment

---------

Co-authored-by: astone123 <adams@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
2025-04-30 13:33:02 -05:00
Adam Stone-Lord
2a6e9fbd44 internal: (studio) capture anonymous telemetry for studio initialization (#31555) 2025-04-30 09:18:59 -04:00
Adam Stone-Lord
a5ba8c497c internal: (studio) initialize cloud studio asynchronously (#31469)
Co-authored-by: Ryan Manuel <ryanm@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
2025-04-29 09:37:44 -04:00
Ryan Manuel
38f980e0c4 internal: (studio) improve error reporting (#31546)
* internal: (studio) improvements to how studio can access the protocol database

* fix

* fix build

* refactor due to downstream changes

* feat: capture errors with studio

* types

* add tests

* fix types

* fix typescript

* strip path

* fix tests
2025-04-23 15:54:30 -05:00
Ryan Manuel
ac3bb18dbc internal: (studio) enable studio to access the protocol database with a new connection (#31502)
* internal: (studio) improvements to how studio can access the protocol database

* fix

* fix build

* refactor due to downstream changes

* Update packages/app/src/studio/studio-app-types.ts

* Update packages/server/lib/cloud/studio.ts
2025-04-17 20:32:29 -05:00
Cacie Prins
a50012b892 perf: reduce the initial timeout for proxy connections, make configurable (#31283)
* use cached preflight response on subsequent cloud requests that require a preflight

* introduce env var to skip initial proxy-api request

* rename env to CYPRESS_INTERNAL prefix

* change noproxy timeout default to 5 seconds

* fix

* rm internal

* changelog

* Update packages/server/test/unit/cloud/api/api_spec.js

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* Update packages/server/lib/cloud/api/index.ts

Co-authored-by: Bill Glesias <bglesias@gmail.com>

* fix ts

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Bill Glesias <bglesias@gmail.com>
2025-04-17 10:00:46 -04:00
Cacie Prins
ab98b4940e fix: Back out of axios switchover for the createInstance cloud API request (#31486)
* use old create instance method for proxy support

* changelog

* conform legacy createInstance to the newer signature

* link to proxy env issue as todo

* changelog

* system test snapshots

* fix snap
2025-04-16 14:45:19 -04:00
Matt Schile
f62a65fe82 internal: (studio) add socket listeners (#31470) 2025-04-15 11:24:52 -06:00
Jennifer Shehane
6b28356878 chore: convert cache.js file within server to TypeScript (#31471)
* chore: convert cache.js file within server to TypeScript

* update cache calls and await them

* updates to imports and switching cache calls to await

* remove Partial from Allowed State

* change cache calls back to not await

* Remove dead code

* update memo.push return
2025-04-10 15:02:58 -04:00
Ryan Manuel
108eb7ea0d internal: (studio) make the protocol database accessible to studio (#31443)
* internal: (studio) make the protocol database accessible to studio

* PR comment
2025-04-06 15:04:26 -05:00
Ryan Manuel
9201d3280a chore: ensure that studio AI logic is disabled on non chromium based browsers (#31272)
* update url with studio params

* updates

* spec updates

* adding tests

* updating changelog

* skip adding visit log during start

* update url support

* cy origin tests

* fix tests

* updates

* update origin test

* chore: support studio lifecycle in protocol

* merge changes

* fix types

* fix tests

* fix tests

* fix tests

* fix more tests

* fix more tests

* fix more tests

* fix test

* fix bugs

* fix tests

* attempt to fix test

* further fixes

* improve cloud studio enablement

* refactoring

* remove new dom link

* fix last test

* Update packages/app/cypress/e2e/studio/studio.cy.ts

* Update packages/server/lib/project-base.ts

* chore: ensure that studio llm logic is disabled on non chromium based browsers

* use canAccessStudioLLM in the component

* fix types

* fix types

* fix types

* PR comments

* fix types

* fix types

* revert type stuff

* refactor

* import type

* fix types

---------

Co-authored-by: Matthew Schile <mschile@cypress.io>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2025-03-14 14:20:40 -05:00
Ryan Manuel
0daf7e639f chore: support studio lifecycle in protocol (#31239)
* update url with studio params

* updates

* spec updates

* adding tests

* updating changelog

* skip adding visit log during start

* update url support

* cy origin tests

* fix tests

* updates

* update origin test

* chore: support studio lifecycle in protocol

* merge changes

* fix types

* fix tests

* fix tests

* fix tests

* fix more tests

* fix more tests

* fix more tests

* fix test

* fix bugs

* fix tests

* attempt to fix test

* further fixes

* improve cloud studio enablement

* refactoring

* remove new dom link

* fix last test

* Update packages/app/cypress/e2e/studio/studio.cy.ts

* Update packages/server/lib/project-base.ts

* Update packages/proxy/lib/http/request-middleware.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* PR comments

* fix build

* fix build

* update

* Update packages/server/lib/project-base.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix unit test

* rework save logic

---------

Co-authored-by: Matthew Schile <mschile@cypress.io>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
2025-03-13 20:30:29 -05:00
Cacie Prins
bbd7efc0dd refactor: begin to use axios for cloud api requests (#31041)
* patch axios for v8 snapshots

* export httpsAgent and httpAgent discretely

* set up axios interceptors for logging and error response transformation

* use unified error transform fn

* create instance api reqs, timeouts, tests

* move axios middleware to its own dir & refactor

* refactor error handling, enable retries in createInstance

* fix invocation of createInstance - not caught by ts because record.js is js

* retry on 500 - according to system test, this is expected behavior

* resolve snapshots, report retries to stdout

* fix cdp connection usage of shouldRetry due to newly unknown error type

* axios doesnt fully follow RequestOptions shape when adding request to https agent

* note why uri is treated as optional

* hail mary on getting axios to work with v8 snapshots

* update lockfile, force no-rewrite on more axios files

* attempt to fix v8 snapshots

* add verbose debugging to api request logging

* enable verbose api debugging on server unit tests

* fix nock pattern for createInstance

* remove request logging unit test - sinon/mocha does not assert correctly

* fix a few unit tests

* use runAllAsync rather than waiting an arbitrary time for sinon fake timer

* move create_instance spec to ts file, remove redundant test

* rm debug on ci

* clarify comment on change inpackages/network

* correct .uri property on patched RequestOptions to be optional

* rm unused log_requests.ts, DRY error messages

* resolve types with record.ts migration

---------

Co-authored-by: Ryan Manuel <ryanm@cypress.io>
2025-03-10 10:58:09 -04:00
Ryan Manuel
bd4774fb57 chore: pass file preprocesor override to protocol as debug data (#31171)
* chore: set up sharing of react via module federation in studio

* chore: add ability to load types from the studio bundle

* fix build

* fix build

* fix build

* chore: pass file preprocesor override to protocol as debug data

* fix tests

* PR comments

* PR comment

* update types
2025-03-03 12:52:01 -06:00
Ryan Manuel
ffcc6387ef chore: add ability to load types from the studio bundle (#31153)
* chore: set up sharing of react via module federation in studio

* chore: add ability to load types from the studio bundle

* fix build

* fix build

* fix build

* PR comments

* Update guides/studio-development.md

Co-authored-by: Matt Schile <mschile@cypress.io>

* fix test

---------

Co-authored-by: Matt Schile <mschile@cypress.io>
2025-02-28 16:30:45 -06:00
Ryan Manuel
2dce6d5831 chore: add logic to dynamically load studio functionality (#31033)
* chore: add logic to dynamically load new studio functionality

* fix types

* fix tests

* fix

* fix tests

* fix tests

* additional changes to lock things down

* clean up code

* Update guides/studio-development.md

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* Update protocol-development.md

* additional headers

* PR comments

* Update packages/server/lib/cloud/api/get_app_studio.ts

Co-authored-by: Matt Schile <mschile@cypress.io>

* Update packages/app/vite.config.mjs

* update studio/protocol development guides

---------

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
2025-02-14 14:54:15 -06:00
Jennifer Shehane
636bed9cf7 merge develop 2024-12-02 09:42:47 -05:00
Ryan Manuel
0975b2f07f feat: update the protocol to be able to flex logic based on project config (#30594)
* feat: update the protocol to be able to flex logic based on project config

* slight refactor

* Update cli/CHANGELOG.md

* Update packages/types/src/protocol.ts

* fix ts
2024-11-13 15:42:11 -06:00
Ryan Manuel
9fda261dde chore: upgrade electron to 32.2.0 (#30394)
* chore: upgrade electron to 32.2.0 -- run ci

* fix node versions

* fix build

* fix evil-dns

* various fixes

* fix srcdoc

* various fixes

* update package.json

* update yarn.lock

* various fixes

* fix integrity check

* fix binary verification

* various fixes

* update yarn.lock

* fix typo

* fix lock file

* fix tests

* fix tests

* various fixes

* various fixes

* various fixes

* fix stuff

* fix things

* try to fix errors

* fix

* updates

* add yarn berry

* upgrade electron

* attempt with gcc

* blank

* update arm64 executor

* try to fix the arm64 issue

* fix arm64

* bump cache

* attempt to fix arm64 again

* attempt to fix arm64 again

* fix darwin problems

* merge release/14.0.0

* update yarn.lock

* blank -- run ci

* blank

* blank

* blank

* try something

* try something

* clean up

* blank

* try to fix sessions issue

* fixes

* get more info

* get more info

* try something

* fix

* try something

* try something

* try something

* tweak

* one more thing

* let us see if this works

* blank

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* Apply suggestions from code review

* Apply suggestions from code review

* Update cli/CHANGELOG.md

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* Update cli/CHANGELOG.md

Co-authored-by: Jennifer Shehane <jennifer@cypress.io>

* Update CHANGELOG.md

* Update cache-version.txt

* fix nx (maybe)

* Update package.json

* try something

* Update packages/app/src/runner/aut-iframe.ts

* bump version

* try to bust cache

* try to invalidate cache

* Update cli/CHANGELOG.md

* suppress benign warnings

* Apply suggestions from code review

* PR comments

* PR comment

* Apply suggestions from code review

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* chore: updating v8 snapshot cache

* Update cli/CHANGELOG.md

Co-authored-by: Matt Schile <mschile@cypress.io>

* update debug scenario 4 regex

* Update scripts/binary/trigger-publish-binary-pipeline.js

---------

Co-authored-by: cypress-bot[bot] <+cypress-bot[bot]@users.noreply.github.com>
Co-authored-by: Jennifer Shehane <jennifer@cypress.io>
Co-authored-by: Matt Schile <mschile@cypress.io>
2024-10-29 14:55:26 -05:00