testdriverai 7.5.0 → 7.5.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/{ai/skills/testdriver:quickstart → .github/skills/testdriver-quickstart}/SKILL.md +0 -1
  2. package/.github/workflows/acceptance.yaml +2 -1
  3. package/.github/workflows/publish.yaml +1 -1
  4. package/.github/workflows/windows-self-hosted.yaml +3 -2
  5. package/CHANGELOG.md +336 -0
  6. package/agent/index.js +22 -15
  7. package/agent/lib/commands.js +1 -1
  8. package/agent/lib/sandbox.js +115 -11
  9. package/agent/lib/sdk.js +2 -1
  10. package/agent/lib/system.js +48 -28
  11. package/{.github/skills/testdriver:quickstart → ai/skills/testdriver-quickstart}/SKILL.md +0 -2
  12. package/debugger/index.html +49 -368
  13. package/docs/_scripts/generate-skills.js +7 -2
  14. package/docs/v7/quickstart.mdx +0 -2
  15. package/interfaces/cli/lib/base.js +1 -1
  16. package/interfaces/vitest-plugin.mjs +6 -5
  17. package/lib/core/Dashcam.js +51 -24
  18. package/lib/sentry.js +1 -1
  19. package/package.json +1 -1
  20. package/sdk.js +21 -28
  21. package/vitest.config.mjs +5 -5
  22. package/vscode-extension/src/extension.ts +1 -1
  23. package/SKILLs.md +0 -17
  24. package/agent/lib/debugger-server.js +0 -236
  25. package/agent/lib/debugger.js +0 -45
  26. package/test-ide-preview.mjs +0 -17
  27. package/tests/airbnb-booking.test.mjs +0 -39
  28. package/tests/airbnb-search.test.mjs +0 -43
  29. package/tests/example.test.js +0 -33
  30. package/tests/login.js +0 -28
  31. /package/.github/skills/{testdriver:ai → testdriver-ai}/SKILL.md +0 -0
  32. /package/.github/skills/{testdriver:assert → testdriver-assert}/SKILL.md +0 -0
  33. /package/.github/skills/{testdriver:aws-setup → testdriver-aws-setup}/SKILL.md +0 -0
  34. /package/.github/skills/{testdriver:caching → testdriver-caching}/SKILL.md +0 -0
  35. /package/.github/skills/{testdriver:captcha → testdriver-captcha}/SKILL.md +0 -0
  36. /package/.github/skills/{testdriver:ci-cd → testdriver-ci-cd}/SKILL.md +0 -0
  37. /package/.github/skills/{testdriver:click → testdriver-click}/SKILL.md +0 -0
  38. /package/.github/skills/{testdriver:client → testdriver-client}/SKILL.md +0 -0
  39. /package/.github/skills/{testdriver:cloud → testdriver-cloud}/SKILL.md +0 -0
  40. /package/.github/skills/{testdriver:customizing-devices → testdriver-customizing-devices}/SKILL.md +0 -0
  41. /package/.github/skills/{testdriver:dashcam → testdriver-dashcam}/SKILL.md +0 -0
  42. /package/.github/skills/{testdriver:debugging-with-screenshots → testdriver-debugging-with-screenshots}/SKILL.md +0 -0
  43. /package/.github/skills/{testdriver:device-config → testdriver-device-config}/SKILL.md +0 -0
  44. /package/.github/skills/{testdriver:double-click → testdriver-double-click}/SKILL.md +0 -0
  45. /package/.github/skills/{testdriver:elements → testdriver-elements}/SKILL.md +0 -0
  46. /package/.github/skills/{testdriver:enterprise → testdriver-enterprise}/SKILL.md +0 -0
  47. /package/.github/skills/{testdriver:examples → testdriver-examples}/SKILL.md +0 -0
  48. /package/.github/skills/{testdriver:exec → testdriver-exec}/SKILL.md +0 -0
  49. /package/.github/skills/{testdriver:find → testdriver-find}/SKILL.md +0 -0
  50. /package/.github/skills/{testdriver:focus-application → testdriver-focus-application}/SKILL.md +0 -0
  51. /package/.github/skills/{testdriver:generating-tests → testdriver-generating-tests}/SKILL.md +0 -0
  52. /package/.github/skills/{testdriver:hover → testdriver-hover}/SKILL.md +0 -0
  53. /package/.github/skills/{testdriver:locating-elements → testdriver-locating-elements}/SKILL.md +0 -0
  54. /package/.github/skills/{testdriver:making-assertions → testdriver-making-assertions}/SKILL.md +0 -0
  55. /package/.github/skills/{testdriver:mcp-workflow → testdriver-mcp-workflow}/SKILL.md +0 -0
  56. /package/.github/skills/{testdriver:mouse-down → testdriver-mouse-down}/SKILL.md +0 -0
  57. /package/.github/skills/{testdriver:mouse-up → testdriver-mouse-up}/SKILL.md +0 -0
  58. /package/.github/skills/{testdriver:parse → testdriver-parse}/SKILL.md +0 -0
  59. /package/.github/skills/{testdriver:performing-actions → testdriver-performing-actions}/SKILL.md +0 -0
  60. /package/.github/skills/{testdriver:press-keys → testdriver-press-keys}/SKILL.md +0 -0
  61. /package/.github/skills/{testdriver:reusable-code → testdriver-reusable-code}/SKILL.md +0 -0
  62. /package/.github/skills/{testdriver:right-click → testdriver-right-click}/SKILL.md +0 -0
  63. /package/.github/skills/{testdriver:running-tests → testdriver-running-tests}/SKILL.md +0 -0
  64. /package/.github/skills/{testdriver:screenshot → testdriver-screenshot}/SKILL.md +0 -0
  65. /package/.github/skills/{testdriver:scroll → testdriver-scroll}/SKILL.md +0 -0
  66. /package/.github/skills/{testdriver:secrets → testdriver-secrets}/SKILL.md +0 -0
  67. /package/.github/skills/{testdriver:self-hosted → testdriver-self-hosted}/SKILL.md +0 -0
  68. /package/.github/skills/{testdriver:test-writer → testdriver-test-writer}/SKILL.md +0 -0
  69. /package/.github/skills/{testdriver:testdriver → testdriver-testdriver}/SKILL.md +0 -0
  70. /package/.github/skills/{testdriver:testdriver-mechanic → testdriver-testdriver-mechanic}/SKILL.md +0 -0
  71. /package/.github/skills/{testdriver:type → testdriver-type}/SKILL.md +0 -0
  72. /package/.github/skills/{testdriver:variables → testdriver-variables}/SKILL.md +0 -0
  73. /package/.github/skills/{testdriver:waiting-for-elements → testdriver-waiting-for-elements}/SKILL.md +0 -0
  74. /package/.github/skills/{testdriver:what-is-testdriver → testdriver-what-is-testdriver}/SKILL.md +0 -0
  75. /package/ai/skills/{testdriver:ai → testdriver-ai}/SKILL.md +0 -0
  76. /package/ai/skills/{testdriver:assert → testdriver-assert}/SKILL.md +0 -0
  77. /package/ai/skills/{testdriver:aws-setup → testdriver-aws-setup}/SKILL.md +0 -0
  78. /package/ai/skills/{testdriver:caching → testdriver-caching}/SKILL.md +0 -0
  79. /package/ai/skills/{testdriver:captcha → testdriver-captcha}/SKILL.md +0 -0
  80. /package/ai/skills/{testdriver:ci-cd → testdriver-ci-cd}/SKILL.md +0 -0
  81. /package/ai/skills/{testdriver:click → testdriver-click}/SKILL.md +0 -0
  82. /package/ai/skills/{testdriver:client → testdriver-client}/SKILL.md +0 -0
  83. /package/ai/skills/{testdriver:cloud → testdriver-cloud}/SKILL.md +0 -0
  84. /package/ai/skills/{testdriver:customizing-devices → testdriver-customizing-devices}/SKILL.md +0 -0
  85. /package/ai/skills/{testdriver:dashcam → testdriver-dashcam}/SKILL.md +0 -0
  86. /package/ai/skills/{testdriver:debugging-with-screenshots → testdriver-debugging-with-screenshots}/SKILL.md +0 -0
  87. /package/ai/skills/{testdriver:device-config → testdriver-device-config}/SKILL.md +0 -0
  88. /package/ai/skills/{testdriver:double-click → testdriver-double-click}/SKILL.md +0 -0
  89. /package/ai/skills/{testdriver:elements → testdriver-elements}/SKILL.md +0 -0
  90. /package/ai/skills/{testdriver:enterprise → testdriver-enterprise}/SKILL.md +0 -0
  91. /package/ai/skills/{testdriver:examples → testdriver-examples}/SKILL.md +0 -0
  92. /package/ai/skills/{testdriver:exec → testdriver-exec}/SKILL.md +0 -0
  93. /package/ai/skills/{testdriver:find → testdriver-find}/SKILL.md +0 -0
  94. /package/ai/skills/{testdriver:focus-application → testdriver-focus-application}/SKILL.md +0 -0
  95. /package/ai/skills/{testdriver:generating-tests → testdriver-generating-tests}/SKILL.md +0 -0
  96. /package/ai/skills/{testdriver:hover → testdriver-hover}/SKILL.md +0 -0
  97. /package/ai/skills/{testdriver:locating-elements → testdriver-locating-elements}/SKILL.md +0 -0
  98. /package/ai/skills/{testdriver:making-assertions → testdriver-making-assertions}/SKILL.md +0 -0
  99. /package/ai/skills/{testdriver:mcp-workflow → testdriver-mcp-workflow}/SKILL.md +0 -0
  100. /package/ai/skills/{testdriver:mouse-down → testdriver-mouse-down}/SKILL.md +0 -0
  101. /package/ai/skills/{testdriver:mouse-up → testdriver-mouse-up}/SKILL.md +0 -0
  102. /package/ai/skills/{testdriver:parse → testdriver-parse}/SKILL.md +0 -0
  103. /package/ai/skills/{testdriver:performing-actions → testdriver-performing-actions}/SKILL.md +0 -0
  104. /package/ai/skills/{testdriver:press-keys → testdriver-press-keys}/SKILL.md +0 -0
  105. /package/ai/skills/{testdriver:reusable-code → testdriver-reusable-code}/SKILL.md +0 -0
  106. /package/ai/skills/{testdriver:right-click → testdriver-right-click}/SKILL.md +0 -0
  107. /package/ai/skills/{testdriver:running-tests → testdriver-running-tests}/SKILL.md +0 -0
  108. /package/ai/skills/{testdriver:screenshot → testdriver-screenshot}/SKILL.md +0 -0
  109. /package/ai/skills/{testdriver:scroll → testdriver-scroll}/SKILL.md +0 -0
  110. /package/ai/skills/{testdriver:secrets → testdriver-secrets}/SKILL.md +0 -0
  111. /package/ai/skills/{testdriver:self-hosted → testdriver-self-hosted}/SKILL.md +0 -0
  112. /package/ai/skills/{testdriver:test-writer → testdriver-test-writer}/SKILL.md +0 -0
  113. /package/ai/skills/{testdriver:testdriver → testdriver-testdriver}/SKILL.md +0 -0
  114. /package/ai/skills/{testdriver:testdriver-mechanic → testdriver-testdriver-mechanic}/SKILL.md +0 -0
  115. /package/ai/skills/{testdriver:type → testdriver-type}/SKILL.md +0 -0
  116. /package/ai/skills/{testdriver:variables → testdriver-variables}/SKILL.md +0 -0
  117. /package/ai/skills/{testdriver:waiting-for-elements → testdriver-waiting-for-elements}/SKILL.md +0 -0
  118. /package/ai/skills/{testdriver:what-is-testdriver → testdriver-what-is-testdriver}/SKILL.md +0 -0
  119. /package/{test/api-resilience.test.mjs → lib/vitest/gate-server.mjs} +0 -0
@@ -80,7 +80,6 @@ TestDriver makes it easy to write automated computer-use tests for web browsers,
80
80
  test: {
81
81
  testTimeout: 900000,
82
82
  hookTimeout: 900000,
83
- disableConsoleIntercept: true,
84
83
  maxConcurrency: 1, // this should match your plan's concurrency limit
85
84
  reporters: [
86
85
  'default',
@@ -14,7 +14,7 @@ concurrency:
14
14
 
15
15
  jobs:
16
16
  test-linux:
17
- runs-on: testdriver-32
17
+ runs-on: testdriver-16
18
18
 
19
19
  steps:
20
20
  - uses: actions/checkout@v4
@@ -36,6 +36,7 @@ jobs:
36
36
  TD_API_KEY: ${{ secrets.TD_API_KEY }}
37
37
  TWOCAPTCHA_API_KEY: ${{ secrets.TWOCAPTCHA_API_KEY }}
38
38
  TD_OS: linux
39
+ TD_API_ROOT: https://testdriver-api-pr-242.onrender.com
39
40
 
40
41
  - name: Upload test results to Sentry Prevent
41
42
  if: ${{ !cancelled() }}
@@ -70,6 +70,6 @@ jobs:
70
70
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
71
71
 
72
72
  - name: Publish to npm
73
- run: npm publish
73
+ run: npm publish --tag beta
74
74
  env:
75
75
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
@@ -22,7 +22,7 @@ on:
22
22
 
23
23
  jobs:
24
24
  test:
25
- runs-on: testdriver-32
25
+ runs-on: testdriver-16
26
26
 
27
27
  steps:
28
28
  - name: Checkout repository
@@ -50,8 +50,9 @@ jobs:
50
50
  AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
51
51
  AWS_REGION: us-east-2
52
52
  AWS_LAUNCH_TEMPLATE_ID: lt-0ef9bf26a945fb442
53
- AMI_ID: ami-0dd5fa241273a7d50
53
+ AMI_ID: ami-0a29a02201634730e
54
54
  RESOLUTION: 1920x1080
55
+ TD_API_ROOT: https://testdriver-api-pr-242.onrender.com
55
56
 
56
57
  - name: Upload test results
57
58
  if: always()
package/CHANGELOG.md CHANGED
@@ -1,3 +1,339 @@
1
+ ## 7.5.9 (2026-03-06)
2
+
3
+ ## 🔧 Maintenance
4
+
5
+ - Improve logging and error handling across runner and API services [Runner, API] (543ee70a)
6
+ - Update SDK publishing workflow to use beta tag for pre-release versions [SDK] (543ee70a)
7
+ - Enhance sandbox agent reliability and self-update mechanisms [Runner] (543ee70a)
8
+
9
+ ## 7.5.8 (2026-03-06)
10
+
11
+ ## 🔧 Maintenance
12
+
13
+ - Remove deprecated SDK publishing workflow and update runner configuration [Runner] (84ec0219)
14
+
15
+ ## 7.5.7 (2026-03-06)
16
+
17
+ ## ✨ Features
18
+
19
+ - Improve Windows compatibility by renaming skill directories to use hyphens instead of colons [SDK] (7f00a912)
20
+ - Add automated release workflow for streamlined version management across packages (227a9f00)
21
+ - Enhance development environment with improved devcontainer setup and service management scripts (d5bf8460)
22
+
23
+ ## 🐛 Bug Fixes
24
+
25
+ - Fix usage limit checking functionality to properly validate account limits [API] (360ce1e9)
26
+ - Resolve cloning issues on Windows systems caused by invalid directory names in skill files [SDK] (a0cbb8db)
27
+
28
+ ## 🔧 Maintenance
29
+
30
+ - Streamline debugger interface with simplified HTML structure [SDK] (d5bf8460)
31
+ - Remove deprecated Vitest gate server and global setup files [SDK] (d5bf8460)
32
+ - Clean up unused debugger assets from web package [Web] (d5bf8460)
33
+ - Update environment configuration and service authentication [API] (19cf8b34)
34
+ - Consolidate GitHub workflows and remove duplicate test configurations [API] (d5bf8460)
35
+ - Add version synchronization and changelog generation scripts for better release management (d5bf8460)
36
+
37
+ ## 7.5.6 (2026-03-05)
38
+
39
+
40
+ ### Bug Fixes
41
+
42
+ * Ably direct connection provisioning + reconnect resilience ([39e778a](https://github.com/testdriverai/mono/commit/39e778ac73cc51caad076149cf1671b37973ccf6))
43
+ * Ably reconnect resilience - faster retry + suspended state handler ([c228202](https://github.com/testdriverai/mono/commit/c228202a6593b9431d0cc2d3514b0722bf526e8a))
44
+ * direction & amount not correctly sent to VM ([488a0d0](https://github.com/testdriverai/mono/commit/488a0d0921428e7673dddcf27b3238af8d88a7b1))
45
+ * Mouse scrolling in VM ([#291](https://github.com/testdriverai/mono/issues/291)) ([80ca55e](https://github.com/testdriverai/mono/commit/80ca55ec91ce00052bea81ce3033aad7c5216e47))
46
+ * OpenCV throws if needle is larger than the haystack ([#292](https://github.com/testdriverai/mono/issues/292)) ([652b8b1](https://github.com/testdriverai/mono/commit/652b8b109d1c45ee4becbfb923d33a15a1e0d443))
47
+ * provision Ably credentials via SSM for direct IP connections ([6ecdecf](https://github.com/testdriverai/mono/commit/6ecdecf766897a506cd20a3a03814eae48a168f8))
48
+ * reduce Sentry noise from PyAutoGUIClient unhandled data logs ([#122](https://github.com/testdriverai/mono/issues/122)) ([93b6d74](https://github.com/testdriverai/mono/commit/93b6d7485c1f6accc36d9efee10ea8b819c02d72))
49
+ * skip connectToSandboxDirect for E2B sandboxes (url already available from create) ([2a58865](https://github.com/testdriverai/mono/commit/2a58865ebc04b0299f7b92ed912aa78cfc2c8736))
50
+ * use team ID in E2B screenshot S3 path to match download-url access check ([0d1b6ee](https://github.com/testdriverai/mono/commit/0d1b6ee702008b31677c8f4e0858ee3f2acbbbaf))
51
+
52
+
53
+ ### Features
54
+
55
+ * Add elementSimilarity to selector cache ([#121](https://github.com/testdriverai/mono/issues/121)) ([ce39b2e](https://github.com/testdriverai/mono/commit/ce39b2e819e22d72f401e5762e45cef3478752d9))
56
+ * add type and confidence inputs to find endpoint ([#162](https://github.com/testdriverai/mono/issues/162)) ([283e699](https://github.com/testdriverai/mono/commit/283e699523ce362cf1e73086dbb99281336a5a23)), closes [#164](https://github.com/testdriverai/mono/issues/164)
57
+ * add type option to find(), move confidence to API, rename ocr to parse ([#640](https://github.com/testdriverai/mono/issues/640)) ([d98a94b](https://github.com/testdriverai/mono/commit/d98a94bd05c135c74d9fed2ebb72c709fc643337))
58
+ * add windows key ([59b96e8](https://github.com/testdriverai/mono/commit/59b96e8db4d2a29539d9dadc19431c70abe81e3e))
59
+ * **auth:** create team and start Stripe trial on new user signup ([1dcd2b4](https://github.com/testdriverai/mono/commit/1dcd2b408335515b09efdc8415248242c802393b))
60
+ * stream exec stdout in 16KB chunks to avoid Ably 64KB limit ([018f7b5](https://github.com/testdriverai/mono/commit/018f7b5380107818aa415714ee48a3656ebc2d76))
61
+ * Websocket connection health and request timeouts ([#109](https://github.com/testdriverai/mono/issues/109)) ([b7709f5](https://github.com/testdriverai/mono/commit/b7709f5dfaf3b051684f8728708cbc518754cb93))
62
+
63
+
64
+ ### Reverts
65
+
66
+ * Revert "Fix hanging node processes on Ctrl+C (#654)" (#683) ([5e68748](https://github.com/testdriverai/mono/commit/5e6874825c6718e006bbf84e2ba5edae57d173ac)), closes [#654](https://github.com/testdriverai/mono/issues/654) [#683](https://github.com/testdriverai/mono/issues/683)
67
+ * Revert "Ianjennings/fly (#72)" ([09e2417](https://github.com/testdriverai/mono/commit/09e241731537ff094e7096afc1b2e5d804353226)), closes [#72](https://github.com/testdriverai/mono/issues/72)
68
+ * Revert "list dashcam version g" ([5037571](https://github.com/testdriverai/mono/commit/5037571440c33f8966104874c542c6c57a809510))
69
+ * Revert "Disable warm instances by setting pool size to 0 (#49)" (#51) ([c442ec5](https://github.com/testdriverai/mono/commit/c442ec52edab586be3ae8a3eadb34c32338cdea3)), closes [#49](https://github.com/testdriverai/mono/issues/49) [#51](https://github.com/testdriverai/mono/issues/51)
70
+ * Revert "update discord invite" ([b5a9b99](https://github.com/testdriverai/mono/commit/b5a9b9955cf2b0b07fd0ebeb6abf65f89cd3d5a8))
71
+ * Revert "Change MAX_INSTANCES from 50 to 8 (#40)" (#41) ([1d4a3ca](https://github.com/testdriverai/mono/commit/1d4a3cacc5624b478f1e09b953cd56680e160292)), closes [#40](https://github.com/testdriverai/mono/issues/40) [#41](https://github.com/testdriverai/mono/issues/41)
72
+ * Revert "TDT-68 – Show User API Key on Team page" (#349) ([3a594aa](https://github.com/testdriverai/mono/commit/3a594aa73ef36f6b50585c72b9a770708a21c932)), closes [#349](https://github.com/testdriverai/mono/issues/349) [#348](https://github.com/testdriverai/mono/issues/348)
73
+ * Revert "TDT-129 – Always run postrun, even on failure (#368)" (#411) ([1be8c7c](https://github.com/testdriverai/mono/commit/1be8c7c1d22cff39d4a96261c31d8befb8376f47)), closes [#368](https://github.com/testdriverai/mono/issues/368) [#411](https://github.com/testdriverai/mono/issues/411)
74
+ * Revert "TDT-139 – Add hover-text-with-single-characters test" (#407) ([203529a](https://github.com/testdriverai/mono/commit/203529a434e21eb0ccc8037c6ce88f53a4a62f81)), closes [#407](https://github.com/testdriverai/mono/issues/407) [#381](https://github.com/testdriverai/mono/issues/381)
75
+ * Revert "Fix json-schema (#387)" (#389) ([4bddbba](https://github.com/testdriverai/mono/commit/4bddbbad49cd0e491f47e86fb5ecbf945f162bdc)), closes [#387](https://github.com/testdriverai/mono/issues/387) [#389](https://github.com/testdriverai/mono/issues/389)
76
+ * Revert "build with new version of testdriverai client" ([70bdb70](https://github.com/testdriverai/mono/commit/70bdb7033e99f8457205a126261dde295ec1b1f3))
77
+ * Revert "TDT-68-user-apiKey" (#347) ([ecc6057](https://github.com/testdriverai/mono/commit/ecc6057f719d92f8dc7a32e156fdc812f04a0d3b)), closes [#347](https://github.com/testdriverai/mono/issues/347) [#346](https://github.com/testdriverai/mono/issues/346)
78
+ * Revert "TD-2151 – throw if an env variable is missing (#285)" (#288) ([2fcbdf1](https://github.com/testdriverai/mono/commit/2fcbdf1f190b9ced7644f872fd02e64339dbe956)), closes [#285](https://github.com/testdriverai/mono/issues/285) [#288](https://github.com/testdriverai/mono/issues/288)
79
+ * Revert "Match Images Server Side (#268)" ([1a49198](https://github.com/testdriverai/mono/commit/1a49198b34293d8da8972b32d02bac94c1f1519b)), closes [#268](https://github.com/testdriverai/mono/issues/268)
80
+ * Revert "optimal fix for typing repeated chars (#235)" (#254) ([da773b3](https://github.com/testdriverai/mono/commit/da773b34055ccccf38993c23c4a8a86ccc5ccf74)), closes [#235](https://github.com/testdriverai/mono/issues/235) [#254](https://github.com/testdriverai/mono/issues/254)
81
+ * Revert "make sure things get summarized" ([38be3a3](https://github.com/testdriverai/mono/commit/38be3a3da13147760fc4e84b82bb5672343e9493))
82
+ * Revert "reverting to 137" ([07d9d48](https://github.com/testdriverai/mono/commit/07d9d48e2820119eacee6daafcf7dda89182f6d5))
83
+ * Revert "Add Api key support (#127)" ([f0dccb7](https://github.com/testdriverai/mono/commit/f0dccb72bb2ed35a4634f83f0e71b58bfe8516f5)), closes [#127](https://github.com/testdriverai/mono/issues/127)
84
+ * Revert "chrome extension survey page (#269)" ([6fe67d1](https://github.com/testdriverai/mono/commit/6fe67d18fa2e238f173c96f5f24af0d7d277ed0c)), closes [#269](https://github.com/testdriverai/mono/issues/269)
85
+ * Revert "Update "Always by your side" description" ([26893a9](https://github.com/testdriverai/mono/commit/26893a90008a099d51ff6955642e54eb917cf464))
86
+ * Revert "add correct reporting for env in vite" ([3fb0c8f](https://github.com/testdriverai/mono/commit/3fb0c8ff309beffa5f6a99cec645a2693f12030a))
87
+ ## 7.5.5 (2026-03-05)
88
+
89
+
90
+ ### Bug Fixes
91
+
92
+ * Ably direct connection provisioning + reconnect resilience ([39e778a](https://github.com/testdriverai/mono/commit/39e778ac73cc51caad076149cf1671b37973ccf6))
93
+ * Ably reconnect resilience - faster retry + suspended state handler ([c228202](https://github.com/testdriverai/mono/commit/c228202a6593b9431d0cc2d3514b0722bf526e8a))
94
+ * direction & amount not correctly sent to VM ([488a0d0](https://github.com/testdriverai/mono/commit/488a0d0921428e7673dddcf27b3238af8d88a7b1))
95
+ * Mouse scrolling in VM ([#291](https://github.com/testdriverai/mono/issues/291)) ([80ca55e](https://github.com/testdriverai/mono/commit/80ca55ec91ce00052bea81ce3033aad7c5216e47))
96
+ * OpenCV throws if needle is larger than the haystack ([#292](https://github.com/testdriverai/mono/issues/292)) ([652b8b1](https://github.com/testdriverai/mono/commit/652b8b109d1c45ee4becbfb923d33a15a1e0d443))
97
+ * provision Ably credentials via SSM for direct IP connections ([6ecdecf](https://github.com/testdriverai/mono/commit/6ecdecf766897a506cd20a3a03814eae48a168f8))
98
+ * reduce Sentry noise from PyAutoGUIClient unhandled data logs ([#122](https://github.com/testdriverai/mono/issues/122)) ([93b6d74](https://github.com/testdriverai/mono/commit/93b6d7485c1f6accc36d9efee10ea8b819c02d72))
99
+ * skip connectToSandboxDirect for E2B sandboxes (url already available from create) ([2a58865](https://github.com/testdriverai/mono/commit/2a58865ebc04b0299f7b92ed912aa78cfc2c8736))
100
+ * use team ID in E2B screenshot S3 path to match download-url access check ([0d1b6ee](https://github.com/testdriverai/mono/commit/0d1b6ee702008b31677c8f4e0858ee3f2acbbbaf))
101
+
102
+
103
+ ### Features
104
+
105
+ * Add elementSimilarity to selector cache ([#121](https://github.com/testdriverai/mono/issues/121)) ([ce39b2e](https://github.com/testdriverai/mono/commit/ce39b2e819e22d72f401e5762e45cef3478752d9))
106
+ * add type and confidence inputs to find endpoint ([#162](https://github.com/testdriverai/mono/issues/162)) ([283e699](https://github.com/testdriverai/mono/commit/283e699523ce362cf1e73086dbb99281336a5a23)), closes [#164](https://github.com/testdriverai/mono/issues/164)
107
+ * add type option to find(), move confidence to API, rename ocr to parse ([#640](https://github.com/testdriverai/mono/issues/640)) ([d98a94b](https://github.com/testdriverai/mono/commit/d98a94bd05c135c74d9fed2ebb72c709fc643337))
108
+ * add windows key ([59b96e8](https://github.com/testdriverai/mono/commit/59b96e8db4d2a29539d9dadc19431c70abe81e3e))
109
+ * **auth:** create team and start Stripe trial on new user signup ([1dcd2b4](https://github.com/testdriverai/mono/commit/1dcd2b408335515b09efdc8415248242c802393b))
110
+ * stream exec stdout in 16KB chunks to avoid Ably 64KB limit ([018f7b5](https://github.com/testdriverai/mono/commit/018f7b5380107818aa415714ee48a3656ebc2d76))
111
+ * Websocket connection health and request timeouts ([#109](https://github.com/testdriverai/mono/issues/109)) ([b7709f5](https://github.com/testdriverai/mono/commit/b7709f5dfaf3b051684f8728708cbc518754cb93))
112
+
113
+
114
+ ### Reverts
115
+
116
+ * Revert "Fix hanging node processes on Ctrl+C (#654)" (#683) ([5e68748](https://github.com/testdriverai/mono/commit/5e6874825c6718e006bbf84e2ba5edae57d173ac)), closes [#654](https://github.com/testdriverai/mono/issues/654) [#683](https://github.com/testdriverai/mono/issues/683)
117
+ * Revert "Ianjennings/fly (#72)" ([09e2417](https://github.com/testdriverai/mono/commit/09e241731537ff094e7096afc1b2e5d804353226)), closes [#72](https://github.com/testdriverai/mono/issues/72)
118
+ * Revert "list dashcam version g" ([5037571](https://github.com/testdriverai/mono/commit/5037571440c33f8966104874c542c6c57a809510))
119
+ * Revert "Disable warm instances by setting pool size to 0 (#49)" (#51) ([c442ec5](https://github.com/testdriverai/mono/commit/c442ec52edab586be3ae8a3eadb34c32338cdea3)), closes [#49](https://github.com/testdriverai/mono/issues/49) [#51](https://github.com/testdriverai/mono/issues/51)
120
+ * Revert "update discord invite" ([b5a9b99](https://github.com/testdriverai/mono/commit/b5a9b9955cf2b0b07fd0ebeb6abf65f89cd3d5a8))
121
+ * Revert "Change MAX_INSTANCES from 50 to 8 (#40)" (#41) ([1d4a3ca](https://github.com/testdriverai/mono/commit/1d4a3cacc5624b478f1e09b953cd56680e160292)), closes [#40](https://github.com/testdriverai/mono/issues/40) [#41](https://github.com/testdriverai/mono/issues/41)
122
+ * Revert "TDT-68 – Show User API Key on Team page" (#349) ([3a594aa](https://github.com/testdriverai/mono/commit/3a594aa73ef36f6b50585c72b9a770708a21c932)), closes [#349](https://github.com/testdriverai/mono/issues/349) [#348](https://github.com/testdriverai/mono/issues/348)
123
+ * Revert "TDT-129 – Always run postrun, even on failure (#368)" (#411) ([1be8c7c](https://github.com/testdriverai/mono/commit/1be8c7c1d22cff39d4a96261c31d8befb8376f47)), closes [#368](https://github.com/testdriverai/mono/issues/368) [#411](https://github.com/testdriverai/mono/issues/411)
124
+ * Revert "TDT-139 – Add hover-text-with-single-characters test" (#407) ([203529a](https://github.com/testdriverai/mono/commit/203529a434e21eb0ccc8037c6ce88f53a4a62f81)), closes [#407](https://github.com/testdriverai/mono/issues/407) [#381](https://github.com/testdriverai/mono/issues/381)
125
+ * Revert "Fix json-schema (#387)" (#389) ([4bddbba](https://github.com/testdriverai/mono/commit/4bddbbad49cd0e491f47e86fb5ecbf945f162bdc)), closes [#387](https://github.com/testdriverai/mono/issues/387) [#389](https://github.com/testdriverai/mono/issues/389)
126
+ * Revert "build with new version of testdriverai client" ([70bdb70](https://github.com/testdriverai/mono/commit/70bdb7033e99f8457205a126261dde295ec1b1f3))
127
+ * Revert "TDT-68-user-apiKey" (#347) ([ecc6057](https://github.com/testdriverai/mono/commit/ecc6057f719d92f8dc7a32e156fdc812f04a0d3b)), closes [#347](https://github.com/testdriverai/mono/issues/347) [#346](https://github.com/testdriverai/mono/issues/346)
128
+ * Revert "TD-2151 – throw if an env variable is missing (#285)" (#288) ([2fcbdf1](https://github.com/testdriverai/mono/commit/2fcbdf1f190b9ced7644f872fd02e64339dbe956)), closes [#285](https://github.com/testdriverai/mono/issues/285) [#288](https://github.com/testdriverai/mono/issues/288)
129
+ * Revert "Match Images Server Side (#268)" ([1a49198](https://github.com/testdriverai/mono/commit/1a49198b34293d8da8972b32d02bac94c1f1519b)), closes [#268](https://github.com/testdriverai/mono/issues/268)
130
+ * Revert "optimal fix for typing repeated chars (#235)" (#254) ([da773b3](https://github.com/testdriverai/mono/commit/da773b34055ccccf38993c23c4a8a86ccc5ccf74)), closes [#235](https://github.com/testdriverai/mono/issues/235) [#254](https://github.com/testdriverai/mono/issues/254)
131
+ * Revert "make sure things get summarized" ([38be3a3](https://github.com/testdriverai/mono/commit/38be3a3da13147760fc4e84b82bb5672343e9493))
132
+ * Revert "reverting to 137" ([07d9d48](https://github.com/testdriverai/mono/commit/07d9d48e2820119eacee6daafcf7dda89182f6d5))
133
+ * Revert "Add Api key support (#127)" ([f0dccb7](https://github.com/testdriverai/mono/commit/f0dccb72bb2ed35a4634f83f0e71b58bfe8516f5)), closes [#127](https://github.com/testdriverai/mono/issues/127)
134
+ * Revert "chrome extension survey page (#269)" ([6fe67d1](https://github.com/testdriverai/mono/commit/6fe67d18fa2e238f173c96f5f24af0d7d277ed0c)), closes [#269](https://github.com/testdriverai/mono/issues/269)
135
+ * Revert "Update "Always by your side" description" ([26893a9](https://github.com/testdriverai/mono/commit/26893a90008a099d51ff6955642e54eb917cf464))
136
+ * Revert "add correct reporting for env in vite" ([3fb0c8f](https://github.com/testdriverai/mono/commit/3fb0c8ff309beffa5f6a99cec645a2693f12030a))
137
+ ## 7.5.4 (2026-03-05)
138
+
139
+
140
+ ### Bug Fixes
141
+
142
+ * Ably direct connection provisioning + reconnect resilience ([39e778a](https://github.com/testdriverai/mono/commit/39e778ac73cc51caad076149cf1671b37973ccf6))
143
+ * Ably reconnect resilience - faster retry + suspended state handler ([c228202](https://github.com/testdriverai/mono/commit/c228202a6593b9431d0cc2d3514b0722bf526e8a))
144
+ * direction & amount not correctly sent to VM ([488a0d0](https://github.com/testdriverai/mono/commit/488a0d0921428e7673dddcf27b3238af8d88a7b1))
145
+ * Mouse scrolling in VM ([#291](https://github.com/testdriverai/mono/issues/291)) ([80ca55e](https://github.com/testdriverai/mono/commit/80ca55ec91ce00052bea81ce3033aad7c5216e47))
146
+ * OpenCV throws if needle is larger than the haystack ([#292](https://github.com/testdriverai/mono/issues/292)) ([652b8b1](https://github.com/testdriverai/mono/commit/652b8b109d1c45ee4becbfb923d33a15a1e0d443))
147
+ * provision Ably credentials via SSM for direct IP connections ([6ecdecf](https://github.com/testdriverai/mono/commit/6ecdecf766897a506cd20a3a03814eae48a168f8))
148
+ * reduce Sentry noise from PyAutoGUIClient unhandled data logs ([#122](https://github.com/testdriverai/mono/issues/122)) ([93b6d74](https://github.com/testdriverai/mono/commit/93b6d7485c1f6accc36d9efee10ea8b819c02d72))
149
+ * skip connectToSandboxDirect for E2B sandboxes (url already available from create) ([2a58865](https://github.com/testdriverai/mono/commit/2a58865ebc04b0299f7b92ed912aa78cfc2c8736))
150
+ * use team ID in E2B screenshot S3 path to match download-url access check ([0d1b6ee](https://github.com/testdriverai/mono/commit/0d1b6ee702008b31677c8f4e0858ee3f2acbbbaf))
151
+
152
+
153
+ ### Features
154
+
155
+ * Add elementSimilarity to selector cache ([#121](https://github.com/testdriverai/mono/issues/121)) ([ce39b2e](https://github.com/testdriverai/mono/commit/ce39b2e819e22d72f401e5762e45cef3478752d9))
156
+ * add type and confidence inputs to find endpoint ([#162](https://github.com/testdriverai/mono/issues/162)) ([283e699](https://github.com/testdriverai/mono/commit/283e699523ce362cf1e73086dbb99281336a5a23)), closes [#164](https://github.com/testdriverai/mono/issues/164)
157
+ * add type option to find(), move confidence to API, rename ocr to parse ([#640](https://github.com/testdriverai/mono/issues/640)) ([d98a94b](https://github.com/testdriverai/mono/commit/d98a94bd05c135c74d9fed2ebb72c709fc643337))
158
+ * add windows key ([59b96e8](https://github.com/testdriverai/mono/commit/59b96e8db4d2a29539d9dadc19431c70abe81e3e))
159
+ * **auth:** create team and start Stripe trial on new user signup ([1dcd2b4](https://github.com/testdriverai/mono/commit/1dcd2b408335515b09efdc8415248242c802393b))
160
+ * stream exec stdout in 16KB chunks to avoid Ably 64KB limit ([018f7b5](https://github.com/testdriverai/mono/commit/018f7b5380107818aa415714ee48a3656ebc2d76))
161
+ * Websocket connection health and request timeouts ([#109](https://github.com/testdriverai/mono/issues/109)) ([b7709f5](https://github.com/testdriverai/mono/commit/b7709f5dfaf3b051684f8728708cbc518754cb93))
162
+
163
+
164
+ ### Reverts
165
+
166
+ * Revert "Fix hanging node processes on Ctrl+C (#654)" (#683) ([5e68748](https://github.com/testdriverai/mono/commit/5e6874825c6718e006bbf84e2ba5edae57d173ac)), closes [#654](https://github.com/testdriverai/mono/issues/654) [#683](https://github.com/testdriverai/mono/issues/683)
167
+ * Revert "Ianjennings/fly (#72)" ([09e2417](https://github.com/testdriverai/mono/commit/09e241731537ff094e7096afc1b2e5d804353226)), closes [#72](https://github.com/testdriverai/mono/issues/72)
168
+ * Revert "list dashcam version g" ([5037571](https://github.com/testdriverai/mono/commit/5037571440c33f8966104874c542c6c57a809510))
169
+ * Revert "Disable warm instances by setting pool size to 0 (#49)" (#51) ([c442ec5](https://github.com/testdriverai/mono/commit/c442ec52edab586be3ae8a3eadb34c32338cdea3)), closes [#49](https://github.com/testdriverai/mono/issues/49) [#51](https://github.com/testdriverai/mono/issues/51)
170
+ * Revert "update discord invite" ([b5a9b99](https://github.com/testdriverai/mono/commit/b5a9b9955cf2b0b07fd0ebeb6abf65f89cd3d5a8))
171
+ * Revert "Change MAX_INSTANCES from 50 to 8 (#40)" (#41) ([1d4a3ca](https://github.com/testdriverai/mono/commit/1d4a3cacc5624b478f1e09b953cd56680e160292)), closes [#40](https://github.com/testdriverai/mono/issues/40) [#41](https://github.com/testdriverai/mono/issues/41)
172
+ * Revert "TDT-68 – Show User API Key on Team page" (#349) ([3a594aa](https://github.com/testdriverai/mono/commit/3a594aa73ef36f6b50585c72b9a770708a21c932)), closes [#349](https://github.com/testdriverai/mono/issues/349) [#348](https://github.com/testdriverai/mono/issues/348)
173
+ * Revert "TDT-129 – Always run postrun, even on failure (#368)" (#411) ([1be8c7c](https://github.com/testdriverai/mono/commit/1be8c7c1d22cff39d4a96261c31d8befb8376f47)), closes [#368](https://github.com/testdriverai/mono/issues/368) [#411](https://github.com/testdriverai/mono/issues/411)
174
+ * Revert "TDT-139 – Add hover-text-with-single-characters test" (#407) ([203529a](https://github.com/testdriverai/mono/commit/203529a434e21eb0ccc8037c6ce88f53a4a62f81)), closes [#407](https://github.com/testdriverai/mono/issues/407) [#381](https://github.com/testdriverai/mono/issues/381)
175
+ * Revert "Fix json-schema (#387)" (#389) ([4bddbba](https://github.com/testdriverai/mono/commit/4bddbbad49cd0e491f47e86fb5ecbf945f162bdc)), closes [#387](https://github.com/testdriverai/mono/issues/387) [#389](https://github.com/testdriverai/mono/issues/389)
176
+ * Revert "build with new version of testdriverai client" ([70bdb70](https://github.com/testdriverai/mono/commit/70bdb7033e99f8457205a126261dde295ec1b1f3))
177
+ * Revert "TDT-68-user-apiKey" (#347) ([ecc6057](https://github.com/testdriverai/mono/commit/ecc6057f719d92f8dc7a32e156fdc812f04a0d3b)), closes [#347](https://github.com/testdriverai/mono/issues/347) [#346](https://github.com/testdriverai/mono/issues/346)
178
+ * Revert "TD-2151 – throw if an env variable is missing (#285)" (#288) ([2fcbdf1](https://github.com/testdriverai/mono/commit/2fcbdf1f190b9ced7644f872fd02e64339dbe956)), closes [#285](https://github.com/testdriverai/mono/issues/285) [#288](https://github.com/testdriverai/mono/issues/288)
179
+ * Revert "Match Images Server Side (#268)" ([1a49198](https://github.com/testdriverai/mono/commit/1a49198b34293d8da8972b32d02bac94c1f1519b)), closes [#268](https://github.com/testdriverai/mono/issues/268)
180
+ * Revert "optimal fix for typing repeated chars (#235)" (#254) ([da773b3](https://github.com/testdriverai/mono/commit/da773b34055ccccf38993c23c4a8a86ccc5ccf74)), closes [#235](https://github.com/testdriverai/mono/issues/235) [#254](https://github.com/testdriverai/mono/issues/254)
181
+ * Revert "make sure things get summarized" ([38be3a3](https://github.com/testdriverai/mono/commit/38be3a3da13147760fc4e84b82bb5672343e9493))
182
+ * Revert "reverting to 137" ([07d9d48](https://github.com/testdriverai/mono/commit/07d9d48e2820119eacee6daafcf7dda89182f6d5))
183
+ * Revert "Add Api key support (#127)" ([f0dccb7](https://github.com/testdriverai/mono/commit/f0dccb72bb2ed35a4634f83f0e71b58bfe8516f5)), closes [#127](https://github.com/testdriverai/mono/issues/127)
184
+ * Revert "chrome extension survey page (#269)" ([6fe67d1](https://github.com/testdriverai/mono/commit/6fe67d18fa2e238f173c96f5f24af0d7d277ed0c)), closes [#269](https://github.com/testdriverai/mono/issues/269)
185
+ * Revert "Update "Always by your side" description" ([26893a9](https://github.com/testdriverai/mono/commit/26893a90008a099d51ff6955642e54eb917cf464))
186
+ * Revert "add correct reporting for env in vite" ([3fb0c8f](https://github.com/testdriverai/mono/commit/3fb0c8ff309beffa5f6a99cec645a2693f12030a))
187
+ ## 7.5.3 (2026-03-05)
188
+
189
+
190
+ ### Bug Fixes
191
+
192
+ * Ably direct connection provisioning + reconnect resilience ([39e778a](https://github.com/testdriverai/mono/commit/39e778ac73cc51caad076149cf1671b37973ccf6))
193
+ * Ably reconnect resilience - faster retry + suspended state handler ([c228202](https://github.com/testdriverai/mono/commit/c228202a6593b9431d0cc2d3514b0722bf526e8a))
194
+ * direction & amount not correctly sent to VM ([488a0d0](https://github.com/testdriverai/mono/commit/488a0d0921428e7673dddcf27b3238af8d88a7b1))
195
+ * Mouse scrolling in VM ([#291](https://github.com/testdriverai/mono/issues/291)) ([80ca55e](https://github.com/testdriverai/mono/commit/80ca55ec91ce00052bea81ce3033aad7c5216e47))
196
+ * OpenCV throws if needle is larger than the haystack ([#292](https://github.com/testdriverai/mono/issues/292)) ([652b8b1](https://github.com/testdriverai/mono/commit/652b8b109d1c45ee4becbfb923d33a15a1e0d443))
197
+ * provision Ably credentials via SSM for direct IP connections ([6ecdecf](https://github.com/testdriverai/mono/commit/6ecdecf766897a506cd20a3a03814eae48a168f8))
198
+ * reduce Sentry noise from PyAutoGUIClient unhandled data logs ([#122](https://github.com/testdriverai/mono/issues/122)) ([93b6d74](https://github.com/testdriverai/mono/commit/93b6d7485c1f6accc36d9efee10ea8b819c02d72))
199
+ * skip connectToSandboxDirect for E2B sandboxes (url already available from create) ([2a58865](https://github.com/testdriverai/mono/commit/2a58865ebc04b0299f7b92ed912aa78cfc2c8736))
200
+ * use team ID in E2B screenshot S3 path to match download-url access check ([0d1b6ee](https://github.com/testdriverai/mono/commit/0d1b6ee702008b31677c8f4e0858ee3f2acbbbaf))
201
+
202
+
203
+ ### Features
204
+
205
+ * Add elementSimilarity to selector cache ([#121](https://github.com/testdriverai/mono/issues/121)) ([ce39b2e](https://github.com/testdriverai/mono/commit/ce39b2e819e22d72f401e5762e45cef3478752d9))
206
+ * add type and confidence inputs to find endpoint ([#162](https://github.com/testdriverai/mono/issues/162)) ([283e699](https://github.com/testdriverai/mono/commit/283e699523ce362cf1e73086dbb99281336a5a23)), closes [#164](https://github.com/testdriverai/mono/issues/164)
207
+ * add type option to find(), move confidence to API, rename ocr to parse ([#640](https://github.com/testdriverai/mono/issues/640)) ([d98a94b](https://github.com/testdriverai/mono/commit/d98a94bd05c135c74d9fed2ebb72c709fc643337))
208
+ * add windows key ([59b96e8](https://github.com/testdriverai/mono/commit/59b96e8db4d2a29539d9dadc19431c70abe81e3e))
209
+ * **auth:** create team and start Stripe trial on new user signup ([1dcd2b4](https://github.com/testdriverai/mono/commit/1dcd2b408335515b09efdc8415248242c802393b))
210
+ * stream exec stdout in 16KB chunks to avoid Ably 64KB limit ([018f7b5](https://github.com/testdriverai/mono/commit/018f7b5380107818aa415714ee48a3656ebc2d76))
211
+ * Websocket connection health and request timeouts ([#109](https://github.com/testdriverai/mono/issues/109)) ([b7709f5](https://github.com/testdriverai/mono/commit/b7709f5dfaf3b051684f8728708cbc518754cb93))
212
+
213
+
214
+ ### Reverts
215
+
216
+ * Revert "Fix hanging node processes on Ctrl+C (#654)" (#683) ([5e68748](https://github.com/testdriverai/mono/commit/5e6874825c6718e006bbf84e2ba5edae57d173ac)), closes [#654](https://github.com/testdriverai/mono/issues/654) [#683](https://github.com/testdriverai/mono/issues/683)
217
+ * Revert "Ianjennings/fly (#72)" ([09e2417](https://github.com/testdriverai/mono/commit/09e241731537ff094e7096afc1b2e5d804353226)), closes [#72](https://github.com/testdriverai/mono/issues/72)
218
+ * Revert "list dashcam version g" ([5037571](https://github.com/testdriverai/mono/commit/5037571440c33f8966104874c542c6c57a809510))
219
+ * Revert "Disable warm instances by setting pool size to 0 (#49)" (#51) ([c442ec5](https://github.com/testdriverai/mono/commit/c442ec52edab586be3ae8a3eadb34c32338cdea3)), closes [#49](https://github.com/testdriverai/mono/issues/49) [#51](https://github.com/testdriverai/mono/issues/51)
220
+ * Revert "update discord invite" ([b5a9b99](https://github.com/testdriverai/mono/commit/b5a9b9955cf2b0b07fd0ebeb6abf65f89cd3d5a8))
221
+ * Revert "Change MAX_INSTANCES from 50 to 8 (#40)" (#41) ([1d4a3ca](https://github.com/testdriverai/mono/commit/1d4a3cacc5624b478f1e09b953cd56680e160292)), closes [#40](https://github.com/testdriverai/mono/issues/40) [#41](https://github.com/testdriverai/mono/issues/41)
222
+ * Revert "TDT-68 – Show User API Key on Team page" (#349) ([3a594aa](https://github.com/testdriverai/mono/commit/3a594aa73ef36f6b50585c72b9a770708a21c932)), closes [#349](https://github.com/testdriverai/mono/issues/349) [#348](https://github.com/testdriverai/mono/issues/348)
223
+ * Revert "TDT-129 – Always run postrun, even on failure (#368)" (#411) ([1be8c7c](https://github.com/testdriverai/mono/commit/1be8c7c1d22cff39d4a96261c31d8befb8376f47)), closes [#368](https://github.com/testdriverai/mono/issues/368) [#411](https://github.com/testdriverai/mono/issues/411)
224
+ * Revert "TDT-139 – Add hover-text-with-single-characters test" (#407) ([203529a](https://github.com/testdriverai/mono/commit/203529a434e21eb0ccc8037c6ce88f53a4a62f81)), closes [#407](https://github.com/testdriverai/mono/issues/407) [#381](https://github.com/testdriverai/mono/issues/381)
225
+ * Revert "Fix json-schema (#387)" (#389) ([4bddbba](https://github.com/testdriverai/mono/commit/4bddbbad49cd0e491f47e86fb5ecbf945f162bdc)), closes [#387](https://github.com/testdriverai/mono/issues/387) [#389](https://github.com/testdriverai/mono/issues/389)
226
+ * Revert "build with new version of testdriverai client" ([70bdb70](https://github.com/testdriverai/mono/commit/70bdb7033e99f8457205a126261dde295ec1b1f3))
227
+ * Revert "TDT-68-user-apiKey" (#347) ([ecc6057](https://github.com/testdriverai/mono/commit/ecc6057f719d92f8dc7a32e156fdc812f04a0d3b)), closes [#347](https://github.com/testdriverai/mono/issues/347) [#346](https://github.com/testdriverai/mono/issues/346)
228
+ * Revert "TD-2151 – throw if an env variable is missing (#285)" (#288) ([2fcbdf1](https://github.com/testdriverai/mono/commit/2fcbdf1f190b9ced7644f872fd02e64339dbe956)), closes [#285](https://github.com/testdriverai/mono/issues/285) [#288](https://github.com/testdriverai/mono/issues/288)
229
+ * Revert "Match Images Server Side (#268)" ([1a49198](https://github.com/testdriverai/mono/commit/1a49198b34293d8da8972b32d02bac94c1f1519b)), closes [#268](https://github.com/testdriverai/mono/issues/268)
230
+ * Revert "optimal fix for typing repeated chars (#235)" (#254) ([da773b3](https://github.com/testdriverai/mono/commit/da773b34055ccccf38993c23c4a8a86ccc5ccf74)), closes [#235](https://github.com/testdriverai/mono/issues/235) [#254](https://github.com/testdriverai/mono/issues/254)
231
+ * Revert "make sure things get summarized" ([38be3a3](https://github.com/testdriverai/mono/commit/38be3a3da13147760fc4e84b82bb5672343e9493))
232
+ * Revert "reverting to 137" ([07d9d48](https://github.com/testdriverai/mono/commit/07d9d48e2820119eacee6daafcf7dda89182f6d5))
233
+ * Revert "Add Api key support (#127)" ([f0dccb7](https://github.com/testdriverai/mono/commit/f0dccb72bb2ed35a4634f83f0e71b58bfe8516f5)), closes [#127](https://github.com/testdriverai/mono/issues/127)
234
+ * Revert "chrome extension survey page (#269)" ([6fe67d1](https://github.com/testdriverai/mono/commit/6fe67d18fa2e238f173c96f5f24af0d7d277ed0c)), closes [#269](https://github.com/testdriverai/mono/issues/269)
235
+ * Revert "Update "Always by your side" description" ([26893a9](https://github.com/testdriverai/mono/commit/26893a90008a099d51ff6955642e54eb917cf464))
236
+ * Revert "add correct reporting for env in vite" ([3fb0c8f](https://github.com/testdriverai/mono/commit/3fb0c8ff309beffa5f6a99cec645a2693f12030a))
237
+ ## 7.5.2 (2026-03-04)
238
+
239
+
240
+ ### Bug Fixes
241
+
242
+ * Ably direct connection provisioning + reconnect resilience ([39e778a](https://github.com/testdriverai/mono/commit/39e778ac73cc51caad076149cf1671b37973ccf6))
243
+ * Ably reconnect resilience - faster retry + suspended state handler ([c228202](https://github.com/testdriverai/mono/commit/c228202a6593b9431d0cc2d3514b0722bf526e8a))
244
+ * direction & amount not correctly sent to VM ([488a0d0](https://github.com/testdriverai/mono/commit/488a0d0921428e7673dddcf27b3238af8d88a7b1))
245
+ * Mouse scrolling in VM ([#291](https://github.com/testdriverai/mono/issues/291)) ([80ca55e](https://github.com/testdriverai/mono/commit/80ca55ec91ce00052bea81ce3033aad7c5216e47))
246
+ * OpenCV throws if needle is larger than the haystack ([#292](https://github.com/testdriverai/mono/issues/292)) ([652b8b1](https://github.com/testdriverai/mono/commit/652b8b109d1c45ee4becbfb923d33a15a1e0d443))
247
+ * provision Ably credentials via SSM for direct IP connections ([6ecdecf](https://github.com/testdriverai/mono/commit/6ecdecf766897a506cd20a3a03814eae48a168f8))
248
+ * reduce Sentry noise from PyAutoGUIClient unhandled data logs ([#122](https://github.com/testdriverai/mono/issues/122)) ([93b6d74](https://github.com/testdriverai/mono/commit/93b6d7485c1f6accc36d9efee10ea8b819c02d72))
249
+ * skip connectToSandboxDirect for E2B sandboxes (url already available from create) ([2a58865](https://github.com/testdriverai/mono/commit/2a58865ebc04b0299f7b92ed912aa78cfc2c8736))
250
+ * use team ID in E2B screenshot S3 path to match download-url access check ([0d1b6ee](https://github.com/testdriverai/mono/commit/0d1b6ee702008b31677c8f4e0858ee3f2acbbbaf))
251
+
252
+
253
+ ### Features
254
+
255
+ * Add elementSimilarity to selector cache ([#121](https://github.com/testdriverai/mono/issues/121)) ([ce39b2e](https://github.com/testdriverai/mono/commit/ce39b2e819e22d72f401e5762e45cef3478752d9))
256
+ * add type and confidence inputs to find endpoint ([#162](https://github.com/testdriverai/mono/issues/162)) ([283e699](https://github.com/testdriverai/mono/commit/283e699523ce362cf1e73086dbb99281336a5a23)), closes [#164](https://github.com/testdriverai/mono/issues/164)
257
+ * add type option to find(), move confidence to API, rename ocr to parse ([#640](https://github.com/testdriverai/mono/issues/640)) ([d98a94b](https://github.com/testdriverai/mono/commit/d98a94bd05c135c74d9fed2ebb72c709fc643337))
258
+ * add windows key ([59b96e8](https://github.com/testdriverai/mono/commit/59b96e8db4d2a29539d9dadc19431c70abe81e3e))
259
+ * **auth:** create team and start Stripe trial on new user signup ([1dcd2b4](https://github.com/testdriverai/mono/commit/1dcd2b408335515b09efdc8415248242c802393b))
260
+ * stream exec stdout in 16KB chunks to avoid Ably 64KB limit ([018f7b5](https://github.com/testdriverai/mono/commit/018f7b5380107818aa415714ee48a3656ebc2d76))
261
+ * Websocket connection health and request timeouts ([#109](https://github.com/testdriverai/mono/issues/109)) ([b7709f5](https://github.com/testdriverai/mono/commit/b7709f5dfaf3b051684f8728708cbc518754cb93))
262
+
263
+
264
+ ### Reverts
265
+
266
+ * Revert "Fix hanging node processes on Ctrl+C (#654)" (#683) ([5e68748](https://github.com/testdriverai/mono/commit/5e6874825c6718e006bbf84e2ba5edae57d173ac)), closes [#654](https://github.com/testdriverai/mono/issues/654) [#683](https://github.com/testdriverai/mono/issues/683)
267
+ * Revert "Ianjennings/fly (#72)" ([09e2417](https://github.com/testdriverai/mono/commit/09e241731537ff094e7096afc1b2e5d804353226)), closes [#72](https://github.com/testdriverai/mono/issues/72)
268
+ * Revert "list dashcam version g" ([5037571](https://github.com/testdriverai/mono/commit/5037571440c33f8966104874c542c6c57a809510))
269
+ * Revert "Disable warm instances by setting pool size to 0 (#49)" (#51) ([c442ec5](https://github.com/testdriverai/mono/commit/c442ec52edab586be3ae8a3eadb34c32338cdea3)), closes [#49](https://github.com/testdriverai/mono/issues/49) [#51](https://github.com/testdriverai/mono/issues/51)
270
+ * Revert "update discord invite" ([b5a9b99](https://github.com/testdriverai/mono/commit/b5a9b9955cf2b0b07fd0ebeb6abf65f89cd3d5a8))
271
+ * Revert "Change MAX_INSTANCES from 50 to 8 (#40)" (#41) ([1d4a3ca](https://github.com/testdriverai/mono/commit/1d4a3cacc5624b478f1e09b953cd56680e160292)), closes [#40](https://github.com/testdriverai/mono/issues/40) [#41](https://github.com/testdriverai/mono/issues/41)
272
+ * Revert "TDT-68 – Show User API Key on Team page" (#349) ([3a594aa](https://github.com/testdriverai/mono/commit/3a594aa73ef36f6b50585c72b9a770708a21c932)), closes [#349](https://github.com/testdriverai/mono/issues/349) [#348](https://github.com/testdriverai/mono/issues/348)
273
+ * Revert "TDT-129 – Always run postrun, even on failure (#368)" (#411) ([1be8c7c](https://github.com/testdriverai/mono/commit/1be8c7c1d22cff39d4a96261c31d8befb8376f47)), closes [#368](https://github.com/testdriverai/mono/issues/368) [#411](https://github.com/testdriverai/mono/issues/411)
274
+ * Revert "TDT-139 – Add hover-text-with-single-characters test" (#407) ([203529a](https://github.com/testdriverai/mono/commit/203529a434e21eb0ccc8037c6ce88f53a4a62f81)), closes [#407](https://github.com/testdriverai/mono/issues/407) [#381](https://github.com/testdriverai/mono/issues/381)
275
+ * Revert "Fix json-schema (#387)" (#389) ([4bddbba](https://github.com/testdriverai/mono/commit/4bddbbad49cd0e491f47e86fb5ecbf945f162bdc)), closes [#387](https://github.com/testdriverai/mono/issues/387) [#389](https://github.com/testdriverai/mono/issues/389)
276
+ * Revert "build with new version of testdriverai client" ([70bdb70](https://github.com/testdriverai/mono/commit/70bdb7033e99f8457205a126261dde295ec1b1f3))
277
+ * Revert "TDT-68-user-apiKey" (#347) ([ecc6057](https://github.com/testdriverai/mono/commit/ecc6057f719d92f8dc7a32e156fdc812f04a0d3b)), closes [#347](https://github.com/testdriverai/mono/issues/347) [#346](https://github.com/testdriverai/mono/issues/346)
278
+ * Revert "TD-2151 – throw if an env variable is missing (#285)" (#288) ([2fcbdf1](https://github.com/testdriverai/mono/commit/2fcbdf1f190b9ced7644f872fd02e64339dbe956)), closes [#285](https://github.com/testdriverai/mono/issues/285) [#288](https://github.com/testdriverai/mono/issues/288)
279
+ * Revert "Match Images Server Side (#268)" ([1a49198](https://github.com/testdriverai/mono/commit/1a49198b34293d8da8972b32d02bac94c1f1519b)), closes [#268](https://github.com/testdriverai/mono/issues/268)
280
+ * Revert "optimal fix for typing repeated chars (#235)" (#254) ([da773b3](https://github.com/testdriverai/mono/commit/da773b34055ccccf38993c23c4a8a86ccc5ccf74)), closes [#235](https://github.com/testdriverai/mono/issues/235) [#254](https://github.com/testdriverai/mono/issues/254)
281
+ * Revert "make sure things get summarized" ([38be3a3](https://github.com/testdriverai/mono/commit/38be3a3da13147760fc4e84b82bb5672343e9493))
282
+ * Revert "reverting to 137" ([07d9d48](https://github.com/testdriverai/mono/commit/07d9d48e2820119eacee6daafcf7dda89182f6d5))
283
+ * Revert "Add Api key support (#127)" ([f0dccb7](https://github.com/testdriverai/mono/commit/f0dccb72bb2ed35a4634f83f0e71b58bfe8516f5)), closes [#127](https://github.com/testdriverai/mono/issues/127)
284
+ * Revert "chrome extension survey page (#269)" ([6fe67d1](https://github.com/testdriverai/mono/commit/6fe67d18fa2e238f173c96f5f24af0d7d277ed0c)), closes [#269](https://github.com/testdriverai/mono/issues/269)
285
+ * Revert "Update "Always by your side" description" ([26893a9](https://github.com/testdriverai/mono/commit/26893a90008a099d51ff6955642e54eb917cf464))
286
+ * Revert "add correct reporting for env in vite" ([3fb0c8f](https://github.com/testdriverai/mono/commit/3fb0c8ff309beffa5f6a99cec645a2693f12030a))
287
+ ## 7.5.1 (2026-03-04)
288
+
289
+
290
+ ### Bug Fixes
291
+
292
+ * Ably direct connection provisioning + reconnect resilience ([39e778a](https://github.com/testdriverai/mono/commit/39e778ac73cc51caad076149cf1671b37973ccf6))
293
+ * Ably reconnect resilience - faster retry + suspended state handler ([c228202](https://github.com/testdriverai/mono/commit/c228202a6593b9431d0cc2d3514b0722bf526e8a))
294
+ * direction & amount not correctly sent to VM ([488a0d0](https://github.com/testdriverai/mono/commit/488a0d0921428e7673dddcf27b3238af8d88a7b1))
295
+ * Mouse scrolling in VM ([#291](https://github.com/testdriverai/mono/issues/291)) ([80ca55e](https://github.com/testdriverai/mono/commit/80ca55ec91ce00052bea81ce3033aad7c5216e47))
296
+ * OpenCV throws if needle is larger than the haystack ([#292](https://github.com/testdriverai/mono/issues/292)) ([652b8b1](https://github.com/testdriverai/mono/commit/652b8b109d1c45ee4becbfb923d33a15a1e0d443))
297
+ * provision Ably credentials via SSM for direct IP connections ([6ecdecf](https://github.com/testdriverai/mono/commit/6ecdecf766897a506cd20a3a03814eae48a168f8))
298
+ * reduce Sentry noise from PyAutoGUIClient unhandled data logs ([#122](https://github.com/testdriverai/mono/issues/122)) ([93b6d74](https://github.com/testdriverai/mono/commit/93b6d7485c1f6accc36d9efee10ea8b819c02d72))
299
+ * skip connectToSandboxDirect for E2B sandboxes (url already available from create) ([2a58865](https://github.com/testdriverai/mono/commit/2a58865ebc04b0299f7b92ed912aa78cfc2c8736))
300
+ * use team ID in E2B screenshot S3 path to match download-url access check ([0d1b6ee](https://github.com/testdriverai/mono/commit/0d1b6ee702008b31677c8f4e0858ee3f2acbbbaf))
301
+
302
+
303
+ ### Features
304
+
305
+ * Add elementSimilarity to selector cache ([#121](https://github.com/testdriverai/mono/issues/121)) ([ce39b2e](https://github.com/testdriverai/mono/commit/ce39b2e819e22d72f401e5762e45cef3478752d9))
306
+ * add type and confidence inputs to find endpoint ([#162](https://github.com/testdriverai/mono/issues/162)) ([283e699](https://github.com/testdriverai/mono/commit/283e699523ce362cf1e73086dbb99281336a5a23)), closes [#164](https://github.com/testdriverai/mono/issues/164)
307
+ * add type option to find(), move confidence to API, rename ocr to parse ([#640](https://github.com/testdriverai/mono/issues/640)) ([d98a94b](https://github.com/testdriverai/mono/commit/d98a94bd05c135c74d9fed2ebb72c709fc643337))
308
+ * add windows key ([59b96e8](https://github.com/testdriverai/mono/commit/59b96e8db4d2a29539d9dadc19431c70abe81e3e))
309
+ * **auth:** create team and start Stripe trial on new user signup ([1dcd2b4](https://github.com/testdriverai/mono/commit/1dcd2b408335515b09efdc8415248242c802393b))
310
+ * stream exec stdout in 16KB chunks to avoid Ably 64KB limit ([018f7b5](https://github.com/testdriverai/mono/commit/018f7b5380107818aa415714ee48a3656ebc2d76))
311
+ * Websocket connection health and request timeouts ([#109](https://github.com/testdriverai/mono/issues/109)) ([b7709f5](https://github.com/testdriverai/mono/commit/b7709f5dfaf3b051684f8728708cbc518754cb93))
312
+
313
+
314
+ ### Reverts
315
+
316
+ * Revert "Fix hanging node processes on Ctrl+C (#654)" (#683) ([5e68748](https://github.com/testdriverai/mono/commit/5e6874825c6718e006bbf84e2ba5edae57d173ac)), closes [#654](https://github.com/testdriverai/mono/issues/654) [#683](https://github.com/testdriverai/mono/issues/683)
317
+ * Revert "Ianjennings/fly (#72)" ([09e2417](https://github.com/testdriverai/mono/commit/09e241731537ff094e7096afc1b2e5d804353226)), closes [#72](https://github.com/testdriverai/mono/issues/72)
318
+ * Revert "list dashcam version g" ([5037571](https://github.com/testdriverai/mono/commit/5037571440c33f8966104874c542c6c57a809510))
319
+ * Revert "Disable warm instances by setting pool size to 0 (#49)" (#51) ([c442ec5](https://github.com/testdriverai/mono/commit/c442ec52edab586be3ae8a3eadb34c32338cdea3)), closes [#49](https://github.com/testdriverai/mono/issues/49) [#51](https://github.com/testdriverai/mono/issues/51)
320
+ * Revert "update discord invite" ([b5a9b99](https://github.com/testdriverai/mono/commit/b5a9b9955cf2b0b07fd0ebeb6abf65f89cd3d5a8))
321
+ * Revert "Change MAX_INSTANCES from 50 to 8 (#40)" (#41) ([1d4a3ca](https://github.com/testdriverai/mono/commit/1d4a3cacc5624b478f1e09b953cd56680e160292)), closes [#40](https://github.com/testdriverai/mono/issues/40) [#41](https://github.com/testdriverai/mono/issues/41)
322
+ * Revert "TDT-68 – Show User API Key on Team page" (#349) ([3a594aa](https://github.com/testdriverai/mono/commit/3a594aa73ef36f6b50585c72b9a770708a21c932)), closes [#349](https://github.com/testdriverai/mono/issues/349) [#348](https://github.com/testdriverai/mono/issues/348)
323
+ * Revert "TDT-129 – Always run postrun, even on failure (#368)" (#411) ([1be8c7c](https://github.com/testdriverai/mono/commit/1be8c7c1d22cff39d4a96261c31d8befb8376f47)), closes [#368](https://github.com/testdriverai/mono/issues/368) [#411](https://github.com/testdriverai/mono/issues/411)
324
+ * Revert "TDT-139 – Add hover-text-with-single-characters test" (#407) ([203529a](https://github.com/testdriverai/mono/commit/203529a434e21eb0ccc8037c6ce88f53a4a62f81)), closes [#407](https://github.com/testdriverai/mono/issues/407) [#381](https://github.com/testdriverai/mono/issues/381)
325
+ * Revert "Fix json-schema (#387)" (#389) ([4bddbba](https://github.com/testdriverai/mono/commit/4bddbbad49cd0e491f47e86fb5ecbf945f162bdc)), closes [#387](https://github.com/testdriverai/mono/issues/387) [#389](https://github.com/testdriverai/mono/issues/389)
326
+ * Revert "build with new version of testdriverai client" ([70bdb70](https://github.com/testdriverai/mono/commit/70bdb7033e99f8457205a126261dde295ec1b1f3))
327
+ * Revert "TDT-68-user-apiKey" (#347) ([ecc6057](https://github.com/testdriverai/mono/commit/ecc6057f719d92f8dc7a32e156fdc812f04a0d3b)), closes [#347](https://github.com/testdriverai/mono/issues/347) [#346](https://github.com/testdriverai/mono/issues/346)
328
+ * Revert "TD-2151 – throw if an env variable is missing (#285)" (#288) ([2fcbdf1](https://github.com/testdriverai/mono/commit/2fcbdf1f190b9ced7644f872fd02e64339dbe956)), closes [#285](https://github.com/testdriverai/mono/issues/285) [#288](https://github.com/testdriverai/mono/issues/288)
329
+ * Revert "Match Images Server Side (#268)" ([1a49198](https://github.com/testdriverai/mono/commit/1a49198b34293d8da8972b32d02bac94c1f1519b)), closes [#268](https://github.com/testdriverai/mono/issues/268)
330
+ * Revert "optimal fix for typing repeated chars (#235)" (#254) ([da773b3](https://github.com/testdriverai/mono/commit/da773b34055ccccf38993c23c4a8a86ccc5ccf74)), closes [#235](https://github.com/testdriverai/mono/issues/235) [#254](https://github.com/testdriverai/mono/issues/254)
331
+ * Revert "make sure things get summarized" ([38be3a3](https://github.com/testdriverai/mono/commit/38be3a3da13147760fc4e84b82bb5672343e9493))
332
+ * Revert "reverting to 137" ([07d9d48](https://github.com/testdriverai/mono/commit/07d9d48e2820119eacee6daafcf7dda89182f6d5))
333
+ * Revert "Add Api key support (#127)" ([f0dccb7](https://github.com/testdriverai/mono/commit/f0dccb72bb2ed35a4634f83f0e71b58bfe8516f5)), closes [#127](https://github.com/testdriverai/mono/issues/127)
334
+ * Revert "chrome extension survey page (#269)" ([6fe67d1](https://github.com/testdriverai/mono/commit/6fe67d18fa2e238f173c96f5f24af0d7d277ed0c)), closes [#269](https://github.com/testdriverai/mono/issues/269)
335
+ * Revert "Update "Always by your side" description" ([26893a9](https://github.com/testdriverai/mono/commit/26893a90008a099d51ff6955642e54eb917cf464))
336
+ * Revert "add correct reporting for env in vite" ([3fb0c8f](https://github.com/testdriverai/mono/commit/3fb0c8ff309beffa5f6a99cec645a2693f12030a))
1
337
  ## [7.4.5](https://github.com/testdriverai/testdriverai/compare/v7.3.43...v7.4.5) (2026-02-27)
2
338
 
3
339
 
package/agent/index.js CHANGED
@@ -35,10 +35,7 @@ const { createOutputs } = require("./lib/outputs.js");
35
35
 
36
36
  const isValidVersion = require("./lib/valid-version.js");
37
37
  const { events, createEmitter } = require("./events.js");
38
- const { createDebuggerProcess } = require("./lib/debugger.js");
39
38
  const logger = require("./lib/logger.js");
40
- let debuggerProcess = null; // single debugger process for all instances. otherwise they'll fight over ports. this should be in `web` anyway
41
- let debuggerStarted = false;
42
39
 
43
40
  class TestDriverAgent extends EventEmitter2 {
44
41
  constructor(environment = {}, cliArgs = {}) {
@@ -160,7 +157,6 @@ class TestDriverAgent extends EventEmitter2 {
160
157
 
161
158
  this.lastCommand = new Date().getTime();
162
159
  this.csv = [["command,time"]];
163
- this.debuggerUrl = null; // the debugger server URL
164
160
 
165
161
  // Source mapping for YAML files
166
162
  this.sourceMapper = new SourceMapper();
@@ -1793,15 +1789,8 @@ ${regression}
1793
1789
  timestamp: Date.now(),
1794
1790
  });
1795
1791
 
1796
- // Start the debugger server as early as possible to ensure event listeners are attached
1797
- if (!debuggerStarted) {
1798
- debuggerStarted = true; // Prevent multiple starts, especially when running test in parallel
1799
- debuggerProcess = await createDebuggerProcess(
1800
- this.config,
1801
- this.emitter,
1802
- );
1803
- }
1804
- this.debuggerUrl = debuggerProcess.url || null; // Store the debugger URL
1792
+ // Debugger UI is hosted on the web app (console.testdriver.ai/debugger/)
1793
+ // No local debugger server needed
1805
1794
  this.emitter.emit(events.log.log, `This is beta software!`);
1806
1795
  this.emitter.emit(events.log.log, ``);
1807
1796
  this.emitter.emit(
@@ -1928,8 +1917,9 @@ ${regression}
1928
1917
  // Base64 encode the data (the debugger expects base64, not URL encoding)
1929
1918
  const encodedData = Buffer.from(JSON.stringify(data)).toString("base64");
1930
1919
 
1931
- // Use the debugger URL instead of the VNC URL
1932
- const urlToOpen = `${this.debuggerUrl}?data=${encodedData}`;
1920
+ // Build debugger URL hosted on S3 (v7-vnc bucket)
1921
+ const debuggerBase = process.env.TD_DEBUGGER_BASE_URL || "https://v7-vnc.s3.us-east-2.amazonaws.com";
1922
+ const urlToOpen = `${debuggerBase}/index.html?data=${encodedData}`;
1933
1923
 
1934
1924
  // Check preview mode from CLI options (SDK passes it directly)
1935
1925
  const previewMode = (this.cliArgs.options && this.cliArgs.options.preview) || this.config.TD_PREVIEW || "browser";
@@ -1946,6 +1936,23 @@ ${regression}
1946
1936
  }
1947
1937
  }
1948
1938
 
1939
+ // Get the console (web app) URL for the given API root
1940
+ _getConsoleUrl(apiRoot) {
1941
+ // Allow explicit override via env (e.g. VITE_DOMAIN from .env)
1942
+ if (process.env.VITE_DOMAIN) return process.env.VITE_DOMAIN;
1943
+
1944
+ const mapping = {
1945
+ "https://testdriver-api.onrender.com": "https://console.testdriver.ai",
1946
+ "https://v6.testdriver.ai": "https://console.testdriver.ai",
1947
+ };
1948
+ if (mapping[apiRoot]) return mapping[apiRoot];
1949
+ // Local dev: API on localhost:1337 -> Web on localhost:3001
1950
+ if (apiRoot.includes("localhost:1337") || apiRoot.includes("127.0.0.1:1337")) {
1951
+ return "http://localhost:3001";
1952
+ }
1953
+ return "https://console.testdriver.ai";
1954
+ }
1955
+
1949
1956
  // Write session file for IDE preview (VSCode extension watches for these)
1950
1957
  writeIdeSessionFile(debuggerUrl, data) {
1951
1958
  const fs = require("fs");
@@ -1572,7 +1572,7 @@ const createCommands = (
1572
1572
  const execActionEndTime = Date.now();
1573
1573
  const execDuration = execActionEndTime - execActionLogStart;
1574
1574
 
1575
- // const debugMode = process.env.VERBOSE || process.env.DEBUG || process.env.TD_DEBUG;
1575
+ // const debugMode = process.env.VERBOSE || process.env.TD_DEBUG;
1576
1576
  // if (debugMode) {
1577
1577
  // console.log(result);
1578
1578
  // }