@validate.qa/runner 1.0.21 → 1.0.22

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.
package/dist/cli.js CHANGED
@@ -328483,7 +328483,7 @@ var require_package4 = __commonJS({
328483
328483
  "package.json"(exports2, module2) {
328484
328484
  module2.exports = {
328485
328485
  name: "@validate.qa/runner",
328486
- version: "1.0.21",
328486
+ version: "1.0.22",
328487
328487
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
328488
328488
  bin: {
328489
328489
  "validate-runner": "dist/cli.js"
@@ -330252,6 +330252,10 @@ async function startMobileNetworkCapture(options) {
330252
330252
 
330253
330253
  // src/services/appium-executor.ts
330254
330254
  var DEFAULT_STEP_TIMEOUT_MS = 1e4;
330255
+ var MOBILE_NEW_COMMAND_TIMEOUT_SECONDS = (() => {
330256
+ const raw = Number(process.env.VALIDATEQA_MOBILE_NEW_COMMAND_TIMEOUT);
330257
+ return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : 600;
330258
+ })();
330255
330259
  var VERIFICATION_ACTIONS = /* @__PURE__ */ new Set(["assertVisible", "assertText", "waitForElement"]);
330256
330260
  var WD_SESSION_CREATE_TIMEOUT_MS = 12e4;
330257
330261
  var WD_ACTION_TIMEOUT_MS = 3e4;
@@ -330351,6 +330355,14 @@ async function createSession(target) {
330351
330355
  ...target.deviceId ? { "appium:udid": target.deviceId } : {},
330352
330356
  ...target.platformVersion ? { "appium:platformVersion": target.platformVersion } : {},
330353
330357
  "appium:noReset": true,
330358
+ // Appium's default newCommandTimeout is 60s — it kills the session if no
330359
+ // WebDriver command arrives in that window. A discovery session is driven
330360
+ // by an AI loop where a single model turn (or a pause on a permission
330361
+ // dialog) can exceed 60s, so the default silently terminates the session
330362
+ // mid-run and every later command 404s ("invalid session id"), failing the
330363
+ // whole survey. The runner owns session teardown explicitly, so a long
330364
+ // idle window is safe. Env-overridable.
330365
+ "appium:newCommandTimeout": MOBILE_NEW_COMMAND_TIMEOUT_SECONDS,
330354
330366
  ...realCaps
330355
330367
  } : {
330356
330368
  platformName: "Android",
@@ -330359,6 +330371,8 @@ async function createSession(target) {
330359
330371
  ...target.deviceId ? { "appium:udid": target.deviceId } : {},
330360
330372
  ...target.platformVersion ? { "appium:platformVersion": target.platformVersion } : {},
330361
330373
  "appium:noReset": true,
330374
+ // See the iOS branch: the 60s default kills AI-driven discovery sessions.
330375
+ "appium:newCommandTimeout": MOBILE_NEW_COMMAND_TIMEOUT_SECONDS,
330362
330376
  ...realCaps
330363
330377
  };
330364
330378
  const result = await wdRequest("/session", {
package/dist/cli.mjs CHANGED
@@ -328488,7 +328488,7 @@ var require_package4 = __commonJS({
328488
328488
  "package.json"(exports, module) {
328489
328489
  module.exports = {
328490
328490
  name: "@validate.qa/runner",
328491
- version: "1.0.21",
328491
+ version: "1.0.22",
328492
328492
  description: "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
328493
328493
  bin: {
328494
328494
  "validate-runner": "dist/cli.js"
@@ -330260,6 +330260,10 @@ async function startMobileNetworkCapture(options) {
330260
330260
 
330261
330261
  // src/services/appium-executor.ts
330262
330262
  var DEFAULT_STEP_TIMEOUT_MS = 1e4;
330263
+ var MOBILE_NEW_COMMAND_TIMEOUT_SECONDS = (() => {
330264
+ const raw = Number(process.env.VALIDATEQA_MOBILE_NEW_COMMAND_TIMEOUT);
330265
+ return Number.isFinite(raw) && raw > 0 ? Math.floor(raw) : 600;
330266
+ })();
330263
330267
  var VERIFICATION_ACTIONS = /* @__PURE__ */ new Set(["assertVisible", "assertText", "waitForElement"]);
330264
330268
  var WD_SESSION_CREATE_TIMEOUT_MS = 12e4;
330265
330269
  var WD_ACTION_TIMEOUT_MS = 3e4;
@@ -330359,6 +330363,14 @@ async function createSession(target) {
330359
330363
  ...target.deviceId ? { "appium:udid": target.deviceId } : {},
330360
330364
  ...target.platformVersion ? { "appium:platformVersion": target.platformVersion } : {},
330361
330365
  "appium:noReset": true,
330366
+ // Appium's default newCommandTimeout is 60s — it kills the session if no
330367
+ // WebDriver command arrives in that window. A discovery session is driven
330368
+ // by an AI loop where a single model turn (or a pause on a permission
330369
+ // dialog) can exceed 60s, so the default silently terminates the session
330370
+ // mid-run and every later command 404s ("invalid session id"), failing the
330371
+ // whole survey. The runner owns session teardown explicitly, so a long
330372
+ // idle window is safe. Env-overridable.
330373
+ "appium:newCommandTimeout": MOBILE_NEW_COMMAND_TIMEOUT_SECONDS,
330362
330374
  ...realCaps
330363
330375
  } : {
330364
330376
  platformName: "Android",
@@ -330367,6 +330379,8 @@ async function createSession(target) {
330367
330379
  ...target.deviceId ? { "appium:udid": target.deviceId } : {},
330368
330380
  ...target.platformVersion ? { "appium:platformVersion": target.platformVersion } : {},
330369
330381
  "appium:noReset": true,
330382
+ // See the iOS branch: the 60s default kills AI-driven discovery sessions.
330383
+ "appium:newCommandTimeout": MOBILE_NEW_COMMAND_TIMEOUT_SECONDS,
330370
330384
  ...realCaps
330371
330385
  };
330372
330386
  const result = await wdRequest("/session", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@validate.qa/runner",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "validate local test runner - execute Playwright tests on your machine, connected to validate.qa cloud.",
5
5
  "bin": {
6
6
  "validate-runner": "dist/cli.js"