@exodus/xqa 8.2.1 → 8.2.2

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/README.md CHANGED
@@ -232,7 +232,7 @@ suites:
232
232
  agents:
233
233
  explorer:
234
234
  enabled: true
235
- timeoutSeconds: 600
235
+ timeoutSeconds: 1200
236
236
  buildEnv: dev
237
237
  capabilities:
238
238
  videoRecording: false
@@ -258,7 +258,7 @@ Field reference:
258
258
  | `run.dismissalsPath` | `.xqa/dismissals.json` | Where `xqa review` persists dismissals. |
259
259
  | `suites.directory` | `.xqa/suites` | Directory containing `*.suite.json` files. |
260
260
  | `agents.explorer.enabled` | `true` | Runs the explorer agent. |
261
- | `agents.explorer.timeoutSeconds` | `600` | Wall-clock limit per explore/spec run. |
261
+ | `agents.explorer.timeoutSeconds` | `1200` | Wall-clock limit per explore/spec run. |
262
262
  | `agents.explorer.buildEnv` | `dev` | `dev` or `prod`. `dev` ignores debug overlays as findings. |
263
263
  | `agents.explorer.capabilities.videoRecording` | `false` | Records the simulator screen to MP4. |
264
264
  | `agents.explorer.capabilities.viewUiServer` | `true` | Registers the `view_ui` MCP tool for reading the UI tree. |
package/dist/xqa.cjs CHANGED
@@ -71194,7 +71194,7 @@ agents:
71194
71194
  explorer:
71195
71195
  enabled: true
71196
71196
  # Maximum wall-clock time for an explore/spec run.
71197
- timeoutSeconds: 600
71197
+ timeoutSeconds: 1200
71198
71198
  # App under test build environment. 'dev' disables reporting debug overlays as bugs.
71199
71199
  buildEnv: dev
71200
71200
  capabilities:
@@ -159823,6 +159823,7 @@ function buildSummaryState(context, references) {
159823
159823
  return collectChangeSummary({
159824
159824
  baseRef: references.baseRef,
159825
159825
  gitContext: context.input.gitContext,
159826
+ gitMergeBase: context.deps.gitMergeBase,
159826
159827
  gitDiff: context.deps.gitDiff,
159827
159828
  gitStatusPorcelain: context.deps.gitStatusPorcelain
159828
159829
  }).map((collected) => {
@@ -159840,12 +159841,14 @@ function resolveHead(input) {
159840
159841
  return input.gitBranchReference(input.gitContext).map((reference) => branchReferenceToString(reference));
159841
159842
  }
159842
159843
  function collectChangeSummary(input) {
159843
- const diff = input.gitDiff({ context: input.gitContext, baseSha: input.baseRef });
159844
+ const mergeBase = input.gitMergeBase({ context: input.gitContext, baseRef: input.baseRef });
159844
159845
  const status = input.gitStatusPorcelain(input.gitContext);
159845
- return import_neverthrow92.ResultAsync.combine([diff, status]).map(([rawDiff, porcelainLines]) => ({
159846
- rawDiff,
159847
- summary: summarizeDiff(rawDiff, extractUncommittedFiles(porcelainLines))
159848
- }));
159846
+ return import_neverthrow92.ResultAsync.combine([mergeBase, status]).andThen(
159847
+ ([mergeBaseSha, porcelainLines]) => input.gitDiff({ context: input.gitContext, baseSha: mergeBaseSha }).map((rawDiff) => ({
159848
+ rawDiff,
159849
+ summary: summarizeDiff(rawDiff, extractUncommittedFiles(porcelainLines))
159850
+ }))
159851
+ );
159849
159852
  }
159850
159853
  function toSpecSummaries(entries) {
159851
159854
  return entries.map((entry) => ({
@@ -160119,6 +160122,7 @@ function buildState(input) {
160119
160122
  return collectChangeSummary({
160120
160123
  baseRef: references.sinceSha,
160121
160124
  gitContext: context.input.gitContext,
160125
+ gitMergeBase: context.deps.gitMergeBase,
160122
160126
  gitDiff: context.deps.gitDiff,
160123
160127
  gitStatusPorcelain: context.deps.gitStatusPorcelain
160124
160128
  }).map((collected) => ({
@@ -160563,7 +160567,8 @@ function toExecError(cause, command) {
160563
160567
  async function runGit(input) {
160564
160568
  const { stdout, stderr } = await execFileAsync("git", [...input.commandArguments], {
160565
160569
  cwd: input.context.cwd,
160566
- env: buildEnv2(input.context)
160570
+ env: buildEnv2(input.context),
160571
+ maxBuffer: Infinity
160567
160572
  });
160568
160573
  return { stdout, stderr };
160569
160574
  }
@@ -160607,6 +160612,11 @@ function gitCommitExists(input) {
160607
160612
  function gitDiff(input) {
160608
160613
  return execGit(diffArguments(input), input.context).map((result) => result.stdout);
160609
160614
  }
160615
+ function gitMergeBase(input) {
160616
+ return execGit(["merge-base", input.baseRef, "HEAD"], input.context).map(
160617
+ (result) => result.stdout.trim()
160618
+ );
160619
+ }
160610
160620
  function gitStatusPorcelain(context) {
160611
160621
  return execGit(["status", "--porcelain=v1"], context).map(
160612
160622
  (result) => splitNonEmptyLines(result.stdout)
@@ -161262,6 +161272,7 @@ function ulid3(seedTime, prng) {
161262
161272
  var DEPS2 = {
161263
161273
  gitBranchReference,
161264
161274
  gitCommitExists,
161275
+ gitMergeBase,
161265
161276
  gitDiff,
161266
161277
  gitStatusPorcelain,
161267
161278
  emitScenarios: (input) => emitScenarios(input, { callAi: callScenarioEmitter }),
@@ -161304,6 +161315,7 @@ function buildDeps(input) {
161304
161315
  return {
161305
161316
  gitBranchReference,
161306
161317
  resolveBaseBranch: (gitContext) => resolveBaseBranch(gitContext, { ghDetectPrBaseBranch, gitSymbolicReferenceOriginHead }),
161318
+ gitMergeBase,
161307
161319
  gitDiff,
161308
161320
  gitStatusPorcelain,
161309
161321
  emitScenarios: (emitInput) => emitScenarios(emitInput, { callAi: callScenarioEmitter, emitDebug }),
@@ -181015,7 +181027,7 @@ function buildProgram(options) {
181015
181027
 
181016
181028
  // src/index.ts
181017
181029
  process.title = "xqa";
181018
- var version2 = `${"8.2.1"}${false ? ` (dev build +${"29483d1"})` : ""}`;
181030
+ var version2 = `${"8.2.2"}${false ? ` (dev build +${"447ee08"})` : ""}`;
181019
181031
  var program2 = buildProgram({ version: version2 });
181020
181032
  void program2.parseAsync(process.argv);
181021
181033
  /*! Bundled license information:
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@exodus/xqa",
3
3
  "description": "AI-powered QA CLI tool for autonomous mobile app testing",
4
4
  "license": "MIT",
5
- "version": "8.2.1",
5
+ "version": "8.2.2",
6
6
  "type": "module",
7
7
  "engines": {
8
8
  "node": ">=22"
@@ -55,15 +55,15 @@
55
55
  "@qa-agents/config": "1.0.0",
56
56
  "@qa-agents/consolidator": "1.0.0",
57
57
  "@qa-agents/display": "1.0.0",
58
+ "@qa-agents/eslint-config": "1.0.0",
58
59
  "@qa-agents/explorer": "1.0.0",
59
60
  "@qa-agents/mobile-ios": "1.0.0",
60
61
  "@qa-agents/pipeline": "1.0.0",
61
- "@qa-agents/eslint-config": "1.0.0",
62
- "@qa-agents/shared": "1.0.0",
63
- "@qa-agents/reporter-github": "1.0.0",
64
62
  "@qa-agents/planner": "1.0.0",
63
+ "@qa-agents/reporter-github": "1.0.0",
64
+ "@qa-agents/typescript-config": "1.0.0",
65
65
  "@qa-agents/triager": "1.0.0",
66
- "@qa-agents/typescript-config": "1.0.0"
66
+ "@qa-agents/shared": "1.0.0"
67
67
  },
68
68
  "dependencies": {
69
69
  "@octokit/rest": "^21.0.0",