@alwaysmeticulous/cli 2.306.0 → 2.308.0

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 (238) hide show
  1. package/dist/command-utils/common-options.js +4 -1
  2. package/dist/command-utils/common-options.js.map +1 -1
  3. package/dist/command-utils/detect-upload-mode.js +4 -1
  4. package/dist/command-utils/detect-upload-mode.js.map +1 -1
  5. package/dist/command-utils/detect-upload-mode.spec.js +4 -1
  6. package/dist/command-utils/detect-upload-mode.spec.js.map +1 -1
  7. package/dist/command-utils/download-session.utils.js +4 -1
  8. package/dist/command-utils/download-session.utils.js.map +1 -1
  9. package/dist/command-utils/json-args.js +4 -1
  10. package/dist/command-utils/json-args.js.map +1 -1
  11. package/dist/command-utils/json-args.spec.js +4 -1
  12. package/dist/command-utils/json-args.spec.js.map +1 -1
  13. package/dist/command-utils/parse-container-env.js +4 -1
  14. package/dist/command-utils/parse-container-env.js.map +1 -1
  15. package/dist/command-utils/parse-rewrites.js +4 -1
  16. package/dist/command-utils/parse-rewrites.js.map +1 -1
  17. package/dist/command-utils/print-json.js +4 -1
  18. package/dist/command-utils/print-json.js.map +1 -1
  19. package/dist/command-utils/sentry.utils.js +4 -1
  20. package/dist/command-utils/sentry.utils.js.map +1 -1
  21. package/dist/commands/agent/build-git-options.js +4 -1
  22. package/dist/commands/agent/build-git-options.js.map +1 -1
  23. package/dist/commands/agent/build-git-options.spec.js +4 -1
  24. package/dist/commands/agent/build-git-options.spec.js.map +1 -1
  25. package/dist/commands/agent/index.js +10 -7
  26. package/dist/commands/agent/index.js.map +1 -1
  27. package/dist/commands/agent/js-coverage-diff.command.js +4 -1
  28. package/dist/commands/agent/js-coverage-diff.command.js.map +1 -1
  29. package/dist/commands/agent/js-coverage.command.d.ts +5 -0
  30. package/dist/commands/agent/js-coverage.command.d.ts.map +1 -1
  31. package/dist/commands/agent/js-coverage.command.js +122 -23
  32. package/dist/commands/agent/js-coverage.command.js.map +1 -1
  33. package/dist/commands/agent/js-coverage.command.spec.js +50 -1
  34. package/dist/commands/agent/js-coverage.command.spec.js.map +1 -1
  35. package/dist/commands/agent/screenshot-dom-diff.command.d.ts.map +1 -1
  36. package/dist/commands/agent/screenshot-dom-diff.command.js +5 -2
  37. package/dist/commands/agent/screenshot-dom-diff.command.js.map +1 -1
  38. package/dist/commands/agent/screenshot-image-files.command.d.ts.map +1 -1
  39. package/dist/commands/agent/screenshot-image-files.command.js +5 -2
  40. package/dist/commands/agent/screenshot-image-files.command.js.map +1 -1
  41. package/dist/commands/agent/screenshot-image.command.d.ts.map +1 -1
  42. package/dist/commands/agent/screenshot-image.command.js +5 -2
  43. package/dist/commands/agent/screenshot-image.command.js.map +1 -1
  44. package/dist/commands/agent/test-run-diffs.command.d.ts +4 -1
  45. package/dist/commands/agent/test-run-diffs.command.d.ts.map +1 -1
  46. package/dist/commands/agent/test-run-diffs.command.js +88 -30
  47. package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
  48. package/dist/commands/agent/test-run-diffs.command.spec.js +95 -3
  49. package/dist/commands/agent/test-run-diffs.command.spec.js.map +1 -1
  50. package/dist/commands/agent/test-run-diffs.utils.d.ts +19 -27
  51. package/dist/commands/agent/test-run-diffs.utils.d.ts.map +1 -1
  52. package/dist/commands/agent/test-run-diffs.utils.js +42 -34
  53. package/dist/commands/agent/test-run-diffs.utils.js.map +1 -1
  54. package/dist/commands/agent/test-run-diffs.utils.spec.js +96 -66
  55. package/dist/commands/agent/test-run-diffs.utils.spec.js.map +1 -1
  56. package/dist/commands/agent/test-run-for-commit.command.d.ts +1 -0
  57. package/dist/commands/agent/test-run-for-commit.command.d.ts.map +1 -1
  58. package/dist/commands/agent/test-run-for-commit.command.js +13 -11
  59. package/dist/commands/agent/test-run-for-commit.command.js.map +1 -1
  60. package/dist/commands/agent/timeline.command.js +4 -1
  61. package/dist/commands/agent/timeline.command.js.map +1 -1
  62. package/dist/commands/agent/timeline.command.spec.js +4 -1
  63. package/dist/commands/agent/timeline.command.spec.js.map +1 -1
  64. package/dist/commands/agent/trigger-test-run.command.d.ts +1 -0
  65. package/dist/commands/agent/trigger-test-run.command.d.ts.map +1 -1
  66. package/dist/commands/agent/trigger-test-run.command.js +10 -5
  67. package/dist/commands/agent/trigger-test-run.command.js.map +1 -1
  68. package/dist/commands/agent/trigger-test-run.command.spec.js +4 -1
  69. package/dist/commands/agent/trigger-test-run.command.spec.js.map +1 -1
  70. package/dist/commands/agent/upload-build.command.js +5 -2
  71. package/dist/commands/agent/upload-build.command.js.map +1 -1
  72. package/dist/commands/all-commands.js +4 -1
  73. package/dist/commands/all-commands.js.map +1 -1
  74. package/dist/commands/auth/__tests__/get-project.command.spec.d.ts +2 -0
  75. package/dist/commands/auth/__tests__/get-project.command.spec.d.ts.map +1 -0
  76. package/dist/commands/auth/__tests__/get-project.command.spec.js +72 -0
  77. package/dist/commands/auth/__tests__/get-project.command.spec.js.map +1 -0
  78. package/dist/commands/auth/__tests__/list-projects.command.spec.js +4 -1
  79. package/dist/commands/auth/__tests__/list-projects.command.spec.js.map +1 -1
  80. package/dist/commands/auth/__tests__/login.command.spec.js +15 -28
  81. package/dist/commands/auth/__tests__/login.command.spec.js.map +1 -1
  82. package/dist/commands/auth/__tests__/logout.command.spec.js +5 -5
  83. package/dist/commands/auth/__tests__/logout.command.spec.js.map +1 -1
  84. package/dist/commands/auth/__tests__/set-project.command.spec.d.ts +2 -0
  85. package/dist/commands/auth/__tests__/set-project.command.spec.d.ts.map +1 -0
  86. package/dist/commands/auth/__tests__/set-project.command.spec.js +60 -0
  87. package/dist/commands/auth/__tests__/set-project.command.spec.js.map +1 -0
  88. package/dist/commands/auth/__tests__/whoami.command.spec.js +18 -7
  89. package/dist/commands/auth/__tests__/whoami.command.spec.js.map +1 -1
  90. package/dist/commands/auth/get-project.command.d.ts +10 -0
  91. package/dist/commands/auth/get-project.command.d.ts.map +1 -0
  92. package/dist/commands/auth/get-project.command.js +49 -0
  93. package/dist/commands/auth/get-project.command.js.map +1 -0
  94. package/dist/commands/auth/index.js +6 -3
  95. package/dist/commands/auth/index.js.map +1 -1
  96. package/dist/commands/auth/list-projects.command.js +4 -1
  97. package/dist/commands/auth/list-projects.command.js.map +1 -1
  98. package/dist/commands/auth/login.command.d.ts.map +1 -1
  99. package/dist/commands/auth/login.command.js +11 -23
  100. package/dist/commands/auth/login.command.js.map +1 -1
  101. package/dist/commands/auth/logout.command.d.ts.map +1 -1
  102. package/dist/commands/auth/logout.command.js +8 -3
  103. package/dist/commands/auth/logout.command.js.map +1 -1
  104. package/dist/commands/auth/set-project.command.js +4 -1
  105. package/dist/commands/auth/set-project.command.js.map +1 -1
  106. package/dist/commands/auth/whoami.command.d.ts.map +1 -1
  107. package/dist/commands/auth/whoami.command.js +12 -21
  108. package/dist/commands/auth/whoami.command.js.map +1 -1
  109. package/dist/commands/ci/__tests__/session-filter.utils.spec.d.ts +2 -0
  110. package/dist/commands/ci/__tests__/session-filter.utils.spec.d.ts.map +1 -0
  111. package/dist/commands/ci/__tests__/session-filter.utils.spec.js +66 -0
  112. package/dist/commands/ci/__tests__/session-filter.utils.spec.js.map +1 -0
  113. package/dist/commands/ci/deprecated-trigger-options.js +4 -1
  114. package/dist/commands/ci/deprecated-trigger-options.js.map +1 -1
  115. package/dist/commands/ci/index.js +4 -1
  116. package/dist/commands/ci/index.js.map +1 -1
  117. package/dist/commands/ci/prepare.command.js +4 -1
  118. package/dist/commands/ci/prepare.command.js.map +1 -1
  119. package/dist/commands/ci/resolve-git-options.js +4 -1
  120. package/dist/commands/ci/resolve-git-options.js.map +1 -1
  121. package/dist/commands/ci/run-local.command.js +4 -1
  122. package/dist/commands/ci/run-local.command.js.map +1 -1
  123. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.d.ts +1 -0
  124. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.d.ts.map +1 -1
  125. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js +31 -3
  126. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js.map +1 -1
  127. package/dist/commands/ci/run.command.js +4 -1
  128. package/dist/commands/ci/run.command.js.map +1 -1
  129. package/dist/commands/ci/session-filter.utils.d.ts +25 -0
  130. package/dist/commands/ci/session-filter.utils.d.ts.map +1 -0
  131. package/dist/commands/ci/session-filter.utils.js +80 -0
  132. package/dist/commands/ci/session-filter.utils.js.map +1 -0
  133. package/dist/commands/ci/start-tunnel.command.js +4 -1
  134. package/dist/commands/ci/start-tunnel.command.js.map +1 -1
  135. package/dist/commands/ci/trigger-test-run.core.js +5 -2
  136. package/dist/commands/ci/trigger-test-run.core.js.map +1 -1
  137. package/dist/commands/ci/trigger-test-run.types.js +4 -1
  138. package/dist/commands/ci/trigger-test-run.types.js.map +1 -1
  139. package/dist/commands/ci/upload-asset-chunk.command.js +5 -2
  140. package/dist/commands/ci/upload-asset-chunk.command.js.map +1 -1
  141. package/dist/commands/ci/upload-assets.command.js +4 -1
  142. package/dist/commands/ci/upload-assets.command.js.map +1 -1
  143. package/dist/commands/ci/upload-container.command.js +4 -1
  144. package/dist/commands/ci/upload-container.command.js.map +1 -1
  145. package/dist/commands/debug/clean-workspaces.js +4 -1
  146. package/dist/commands/debug/clean-workspaces.js.map +1 -1
  147. package/dist/commands/debug/index.d.ts.map +1 -1
  148. package/dist/commands/debug/index.js +8 -8
  149. package/dist/commands/debug/index.js.map +1 -1
  150. package/dist/commands/debug/present-workspace.js +4 -1
  151. package/dist/commands/debug/present-workspace.js.map +1 -1
  152. package/dist/commands/debug/project-worktree.js +4 -1
  153. package/dist/commands/debug/project-worktree.js.map +1 -1
  154. package/dist/commands/deprecated-aliases.js +4 -1
  155. package/dist/commands/deprecated-aliases.js.map +1 -1
  156. package/dist/commands/download/index.js +4 -1
  157. package/dist/commands/download/index.js.map +1 -1
  158. package/dist/commands/download/replay.command.js +4 -1
  159. package/dist/commands/download/replay.command.js.map +1 -1
  160. package/dist/commands/download/session.command.js +4 -1
  161. package/dist/commands/download/session.command.js.map +1 -1
  162. package/dist/commands/download/test-run.command.js +4 -1
  163. package/dist/commands/download/test-run.command.js.map +1 -1
  164. package/dist/commands/local/get-edited-files.utils.js +4 -1
  165. package/dist/commands/local/get-edited-files.utils.js.map +1 -1
  166. package/dist/commands/local/get-edited-files.utils.spec.js +4 -1
  167. package/dist/commands/local/get-edited-files.utils.spec.js.map +1 -1
  168. package/dist/commands/local/index.js +4 -1
  169. package/dist/commands/local/index.js.map +1 -1
  170. package/dist/commands/local/relevant-sessions.command.js +5 -2
  171. package/dist/commands/local/relevant-sessions.command.js.map +1 -1
  172. package/dist/commands/project/index.js +4 -1
  173. package/dist/commands/project/index.js.map +1 -1
  174. package/dist/commands/project/show.command.js +5 -2
  175. package/dist/commands/project/show.command.js.map +1 -1
  176. package/dist/commands/project/upload-source.command.js +4 -1
  177. package/dist/commands/project/upload-source.command.js.map +1 -1
  178. package/dist/commands/record/__tests__/login.command.spec.js +7 -2
  179. package/dist/commands/record/__tests__/login.command.spec.js.map +1 -1
  180. package/dist/commands/record/__tests__/session.command.spec.js +7 -2
  181. package/dist/commands/record/__tests__/session.command.spec.js.map +1 -1
  182. package/dist/commands/record/index.js +4 -1
  183. package/dist/commands/record/index.js.map +1 -1
  184. package/dist/commands/record/login.command.js +5 -2
  185. package/dist/commands/record/login.command.js.map +1 -1
  186. package/dist/commands/record/session.command.js +5 -2
  187. package/dist/commands/record/session.command.js.map +1 -1
  188. package/dist/commands/replay-debugger.ui.js +4 -1
  189. package/dist/commands/replay-debugger.ui.js.map +1 -1
  190. package/dist/commands/replay.command.js +4 -1
  191. package/dist/commands/replay.command.js.map +1 -1
  192. package/dist/commands/schema.command.js +4 -1
  193. package/dist/commands/schema.command.js.map +1 -1
  194. package/dist/commands/schema.command.spec.js +4 -1
  195. package/dist/commands/schema.command.spec.js.map +1 -1
  196. package/dist/index.js +4 -1
  197. package/dist/index.js.map +1 -1
  198. package/dist/main.js +4 -1
  199. package/dist/main.js.map +1 -1
  200. package/dist/utils/__tests__/handle-auth-failure.spec.js +4 -1
  201. package/dist/utils/__tests__/handle-auth-failure.spec.js.map +1 -1
  202. package/dist/utils/__tests__/resolve-project-identifier.spec.js +38 -31
  203. package/dist/utils/__tests__/resolve-project-identifier.spec.js.map +1 -1
  204. package/dist/utils/__tests__/resolve-test-run-from-commit.spec.js +4 -1
  205. package/dist/utils/__tests__/resolve-test-run-from-commit.spec.js.map +1 -1
  206. package/dist/utils/__tests__/select-project.spec.js +137 -46
  207. package/dist/utils/__tests__/select-project.spec.js.map +1 -1
  208. package/dist/utils/cli-user-error.js +4 -1
  209. package/dist/utils/cli-user-error.js.map +1 -1
  210. package/dist/utils/constants.js +4 -1
  211. package/dist/utils/constants.js.map +1 -1
  212. package/dist/utils/environment.utils.js +4 -1
  213. package/dist/utils/environment.utils.js.map +1 -1
  214. package/dist/utils/format-coverage-ranges.js +4 -1
  215. package/dist/utils/format-coverage-ranges.js.map +1 -1
  216. package/dist/utils/handle-auth-failure.d.ts +1 -0
  217. package/dist/utils/handle-auth-failure.d.ts.map +1 -1
  218. package/dist/utils/handle-auth-failure.js +7 -3
  219. package/dist/utils/handle-auth-failure.js.map +1 -1
  220. package/dist/utils/out-of-date-client-error.js +4 -1
  221. package/dist/utils/out-of-date-client-error.js.map +1 -1
  222. package/dist/utils/resolve-project-identifier.d.ts +12 -10
  223. package/dist/utils/resolve-project-identifier.d.ts.map +1 -1
  224. package/dist/utils/resolve-project-identifier.js +31 -17
  225. package/dist/utils/resolve-project-identifier.js.map +1 -1
  226. package/dist/utils/resolve-test-run-from-commit.d.ts +6 -2
  227. package/dist/utils/resolve-test-run-from-commit.d.ts.map +1 -1
  228. package/dist/utils/resolve-test-run-from-commit.js +12 -8
  229. package/dist/utils/resolve-test-run-from-commit.js.map +1 -1
  230. package/dist/utils/select-project.d.ts +37 -13
  231. package/dist/utils/select-project.d.ts.map +1 -1
  232. package/dist/utils/select-project.js +113 -40
  233. package/dist/utils/select-project.js.map +1 -1
  234. package/package.json +10 -10
  235. package/dist/commands/auth/unset-project.command.d.ts +0 -3
  236. package/dist/commands/auth/unset-project.command.d.ts.map +0 -1
  237. package/dist/commands/auth/unset-project.command.js +0 -24
  238. package/dist/commands/auth/unset-project.command.js.map +0 -1
@@ -1,4 +1,6 @@
1
1
  "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="240c9b67-5598-5789-8c69-bac6fbb662aa")}catch(e){}}();
3
+
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
5
  exports.testRunDiffsCommand = void 0;
4
6
  const client_1 = require("@alwaysmeticulous/client");
@@ -11,14 +13,42 @@ const test_run_diffs_utils_1 = require("./test-run-diffs.utils");
11
13
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
12
14
  /** Give up polling the diffs summary after this long, rather than forever. */
13
15
  const SUMMARY_POLL_TIMEOUT_MS = 10 * 60_000;
14
- const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToComplete, includeReplayIds, includeDomDiffIds, includeAllDiffs, includeMatches, orderByReplayDiffs, json, }) => {
16
+ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToComplete, includeReplayIds, includeReviewDecisions, includeDomDiffIds, includeAllDiffs, onlyUnreviewed, orderByReplayDiffs, counts, json, project, }) => {
15
17
  if (testRunId != null && commitSha != null) {
16
18
  throw new cli_user_error_1.CliUserError("Pass either --testRunId or --commitSha, not both.");
17
19
  }
18
- const apiToken_ = await (0, client_1.resolveApiTokenWithOAuth)({
19
- apiToken,
20
- enableOAuthLogin: true,
21
- });
20
+ // --counts reports fixed aggregate totals from a dedicated endpoint that takes
21
+ // no list/filter options, so combining it with any of them is meaningless —
22
+ // reject it rather than silently ignoring them. Only --json (output format) and
23
+ // --dontWaitForTestRunToComplete (in-progress handling) remain compatible.
24
+ if (counts) {
25
+ const incompatible = [
26
+ [includeReplayIds, "--includeReplayIds"],
27
+ [includeDomDiffIds, "--includeDomDiffIds"],
28
+ [includeAllDiffs, "--includeAllDiffs"],
29
+ [orderByReplayDiffs, "--orderByReplayDiffs"],
30
+ [includeReviewDecisions, "--includeReviewDecisions"],
31
+ [onlyUnreviewed, "--onlyUnreviewed"],
32
+ ]
33
+ .filter(([enabled]) => enabled)
34
+ .map(([, name]) => name);
35
+ if (incompatible.length > 0) {
36
+ throw new cli_user_error_1.CliUserError(`--counts cannot be combined with: ${incompatible.join(", ")}. ` +
37
+ `It reports fixed aggregate totals; use it on its own (optionally with --json).`);
38
+ }
39
+ }
40
+ // `--counts` reports only aggregate totals (no per-row list); the same numbers
41
+ // whether or not `--json` is set, just as an object vs `key\tvalue` lines.
42
+ const emitCounts = (summaryCounts) => {
43
+ if (json) {
44
+ (0, print_json_1.printJson)(summaryCounts);
45
+ }
46
+ else {
47
+ for (const line of (0, test_run_diffs_utils_1.formatDiffsSummaryCounts)(summaryCounts)) {
48
+ console.log(line);
49
+ }
50
+ }
51
+ };
22
52
  const client = await (0, client_1.createClientWithOAuth)({
23
53
  apiToken,
24
54
  enableOAuthLogin: true,
@@ -32,34 +62,39 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
32
62
  status = (await (0, client_1.getTestRun)({ client, testRunId })).status;
33
63
  }
34
64
  else {
35
- const run = await (0, resolve_test_run_from_commit_1.resolveTestRunForCommitOrThrow)(client, apiToken_, commitSha);
65
+ const run = await (0, resolve_test_run_from_commit_1.resolveTestRunForCommitOrThrow)(client, commitSha, project);
36
66
  resolvedTestRunId = run.testRunId;
37
67
  status = run.status;
38
68
  }
39
- // --includeMatches implies --includeAllDiffs (matches are never part of the
40
- // selected subset, so they only make sense alongside the full set). Use the
41
- // effective value for both the request and the isSelected column. Computed
42
- // up-front so the header can be emitted even on the in-progress short-circuit.
43
- const allDiffs = (0, test_run_diffs_utils_1.resolveIncludeAllDiffs)({ includeAllDiffs, includeMatches });
69
+ // --onlyUnreviewed spans every unreviewed difference (selected or not), so it
70
+ // implies --includeAllDiffs: the isSelected column is included to tell them
71
+ // apart, matching the backend, which resolves the same implication.
72
+ const includeAllDiffsResolved = includeAllDiffs || onlyUnreviewed;
44
73
  const columns = {
45
74
  orderByReplayDiffs,
46
75
  includeDomDiffIds,
47
- includeAllDiffs: allDiffs,
76
+ includeAllDiffs: includeAllDiffsResolved,
48
77
  includeReplayIds,
78
+ includeReviewDecisions,
49
79
  };
50
80
  // Diffs are only meaningful once the run has finished with a verdict
51
81
  // (Success/Failure). Block until it finishes (default) or, with
52
82
  // --dontWaitForTestRunToComplete, report the in-progress run and stop.
53
83
  const finishedStatus = await (0, resolve_test_run_from_commit_1.ensureTestRunFinished)(client, resolvedTestRunId, status, { dontWait: dontWaitForTestRunToComplete });
54
84
  if (finishedStatus == null) {
55
- // Keep stdout's shape stable: an unfinished run has no diffs yet, so emit the
56
- // empty JSON array / a header-only TSV (matching a finished run with zero
57
- // diffs) rather than nothing the notice went to stderr.
58
- if (json) {
59
- console.log("[]");
60
- }
61
- else {
62
- console.log((0, test_run_diffs_utils_1.buildDiffsSummaryHeader)(columns).join("\t"));
85
+ // The in-progress notice already went to stderr (ensureTestRunFinished).
86
+ // For the list, keep stdout's shape stable an unfinished run has no diffs
87
+ // yet, so emit an empty JSON array / header-only TSV (matching a finished run
88
+ // with zero diffs). --counts has no such empty shape: it reports live totals,
89
+ // so emit nothing rather than a row of zeros that would read as a real,
90
+ // fully-reviewed result.
91
+ if (!counts) {
92
+ if (json) {
93
+ console.log("[]");
94
+ }
95
+ else {
96
+ console.log((0, test_run_diffs_utils_1.buildDiffsSummaryHeader)(columns).join("\t"));
97
+ }
63
98
  }
64
99
  return;
65
100
  }
@@ -68,14 +103,21 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
68
103
  (0, resolve_test_run_from_commit_1.assertTestRunComplete)(resolvedTestRunId, finishedStatus, {
69
104
  resultName: "diffs",
70
105
  });
106
+ // `--counts` comes from a dedicated endpoint computed live from the DB, so it
107
+ // needs neither the (potentially large) diffs list nor the summary poll below.
108
+ if (counts) {
109
+ emitCounts(await (0, client_1.getTestRunDiffsSummaryCounts)(client, resolvedTestRunId));
110
+ return;
111
+ }
71
112
  const t0 = performance.now();
72
113
  (0, common_1.logProgress)(`Fetching diffs summary for test run ${resolvedTestRunId}...`);
73
114
  const diffsSummaryOptions = {
74
115
  includeReplayIds,
75
116
  includeDomDiffIds,
76
- includeAllDiffs: allDiffs,
77
- includeMatches,
117
+ includeAllDiffs: includeAllDiffsResolved,
78
118
  orderByReplayDiffs,
119
+ includeReviewDecisions,
120
+ onlyUnreviewed,
79
121
  };
80
122
  let response = await (0, client_1.getTestRunDiffsSummary)(client, resolvedTestRunId, diffsSummaryOptions);
81
123
  // A cold start finding the last computation already `failed` retriggers
@@ -116,9 +158,9 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
116
158
  response = await (0, client_1.getTestRunDiffsSummary)(client, resolvedTestRunId, diffsSummaryOptions);
117
159
  }
118
160
  const data = response.data ?? [];
119
- // The backend sets `index` to the priority rank by default, or the
120
- // within-replay position (with `total`) when orderByReplayDiffs is set.
121
- const rows = (0, test_run_diffs_utils_1.flattenDiffRows)(data, orderByReplayDiffs);
161
+ // The backend sets `index` to a global rank — a flat priority rank by default,
162
+ // or a replayDiff-grouped rank under orderByReplayDiffs; rows sort by it.
163
+ const rows = (0, test_run_diffs_utils_1.flattenDiffRows)(data);
122
164
  if (json) {
123
165
  (0, print_json_1.printJson)((0, test_run_diffs_utils_1.buildDiffsSummaryJson)(data, columns));
124
166
  }
@@ -141,7 +183,7 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
141
183
  };
142
184
  exports.testRunDiffsCommand = {
143
185
  command: "test-run-diffs",
144
- describe: "List replay diffs for a test run. Outputs TSV, one row per screenshot: replayDiffId, screenshotName, outcome, mismatch (plus optional columns depending on flags), or the same data with --json (nested by replay diff under --orderByReplayDiffs).",
186
+ describe: "List replay diffs for a test run. Outputs TSV, one row per screenshot diff: replayDiffId, screenshotName, index, outcome, mismatch (plus optional columns depending on flags), or the same data with --json (nested by replay diff under --orderByReplayDiffs). Pass --counts to print just the totals instead of the list.",
145
187
  builder: {
146
188
  apiToken: { string: true, description: "Meticulous API token" },
147
189
  testRunId: {
@@ -162,6 +204,11 @@ exports.testRunDiffsCommand = {
162
204
  description: "Include base and head replay IDs per replay diff",
163
205
  default: false,
164
206
  },
207
+ includeReviewDecisions: {
208
+ boolean: true,
209
+ description: "Add a decision column with the PR review decision per diff (accepted/rejected/ignored/unreviewed; unreviewed when undecided or no PR)",
210
+ default: false,
211
+ },
165
212
  includeDomDiffIds: {
166
213
  boolean: true,
167
214
  description: "Add a domDiffIds column grouping screenshots by structural DOM change",
@@ -172,17 +219,28 @@ exports.testRunDiffsCommand = {
172
219
  description: "Return every diff instead of only the selected representative subset; adds an isSelected column",
173
220
  default: false,
174
221
  },
175
- includeMatches: {
222
+ onlyUnreviewed: {
176
223
  boolean: true,
177
- description: "Include matching screenshots (matches, known flakes), not just differences. Implies --includeAllDiffs.",
224
+ description: "Return only diffs still awaiting review (decision unreviewed), across every difference rather than just the selected subset — i.e. everything left to review. Implies --includeAllDiffs, so the isSelected column is included to tell selected from unselected differences.",
178
225
  default: false,
179
226
  },
180
227
  orderByReplayDiffs: {
181
228
  boolean: true,
182
- description: "Order rows by replay diff then event index (instead of by selection priority) and include the index/total columns",
229
+ description: "With --json, group screenshots by replay diff instead of a flat list; the index is then a replayDiff-grouped rank rather than a flat priority rank",
230
+ default: false,
231
+ },
232
+ project: {
233
+ string: true,
234
+ description: "Project to resolve --commitSha against (id, 'organization/name', or a bare name unique among your accessible projects). Cannot be combined with --testRunId (the run already determines the project). One-off override for this call only; when omitted, uses the token's project or the default set via `auth set-project`.",
235
+ conflicts: "testRunId",
236
+ },
237
+ counts: {
238
+ boolean: true,
239
+ description: "Print only aggregate totals (num replays, num diffs, and the review-decision breakdown) instead of the per-diff list. Cannot be combined with the list/filter flags (--includeReplayIds, --includeDomDiffIds, --includeAllDiffs, --orderByReplayDiffs, --includeReviewDecisions, --onlyUnreviewed); may be combined with --json.",
183
240
  default: false,
184
241
  },
185
242
  },
186
243
  handler: (0, sentry_utils_1.wrapHandler)(handler),
187
244
  };
188
- //# sourceMappingURL=test-run-diffs.command.js.map
245
+ //# sourceMappingURL=test-run-diffs.command.js.map
246
+ //# debugId=240c9b67-5598-5789-8c69-bac6fbb662aa
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-diffs.command.js","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-run-diffs.command.js","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"240c9b67-5598-5789-8c69-bac6fbb662aa"}
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9fe20f72-fcfb-550f-b1d3-92580629a3a1")}catch(e){}}();
3
+
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
5
  const vitest_1 = require("vitest");
6
+ const cli_user_error_1 = require("../../utils/cli-user-error");
4
7
  const test_run_diffs_command_1 = require("./test-run-diffs.command");
5
8
  // Make wrapHandler a passthrough so handler errors propagate directly to tests
6
9
  // rather than being swallowed by process.exit().
@@ -12,6 +15,7 @@ const mocks = vitest_1.vi.hoisted(() => ({
12
15
  resolveApiTokenWithOAuth: vitest_1.vi.fn(),
13
16
  getTestRun: vitest_1.vi.fn(),
14
17
  getTestRunDiffsSummary: vitest_1.vi.fn(),
18
+ getTestRunDiffsSummaryCounts: vitest_1.vi.fn(),
15
19
  ensureTestRunFinished: vitest_1.vi.fn(),
16
20
  assertTestRunComplete: vitest_1.vi.fn(),
17
21
  resolveTestRunForCommitOrThrow: vitest_1.vi.fn(),
@@ -23,6 +27,7 @@ vitest_1.vi.mock("@alwaysmeticulous/client", () => ({
23
27
  resolveApiTokenWithOAuth: mocks.resolveApiTokenWithOAuth,
24
28
  getTestRun: mocks.getTestRun,
25
29
  getTestRunDiffsSummary: mocks.getTestRunDiffsSummary,
30
+ getTestRunDiffsSummaryCounts: mocks.getTestRunDiffsSummaryCounts,
26
31
  }));
27
32
  vitest_1.vi.mock("@alwaysmeticulous/common", () => ({
28
33
  logNotice: mocks.logNotice,
@@ -40,7 +45,7 @@ class ProcessExitError extends Error {
40
45
  this.code = code;
41
46
  }
42
47
  }
43
- const runHandler = () => test_run_diffs_command_1.testRunDiffsCommand.handler({
48
+ const runHandler = (overrides = {}) => test_run_diffs_command_1.testRunDiffsCommand.handler({
44
49
  apiToken: undefined,
45
50
  testRunId: "tr-1",
46
51
  commitSha: undefined,
@@ -48,9 +53,12 @@ const runHandler = () => test_run_diffs_command_1.testRunDiffsCommand.handler({
48
53
  includeReplayIds: false,
49
54
  includeDomDiffIds: false,
50
55
  includeAllDiffs: false,
51
- includeMatches: false,
52
56
  orderByReplayDiffs: false,
57
+ includeReviewDecisions: false,
58
+ onlyUnreviewed: false,
59
+ counts: false,
53
60
  json: false,
61
+ ...overrides,
54
62
  });
55
63
  let logSpy;
56
64
  let exitSpy;
@@ -142,5 +150,89 @@ let exitSpy;
142
150
  const stdout = logSpy.mock.calls.flat().join("\n");
143
151
  (0, vitest_1.expect)(stdout.split("\n")[0]).toContain("replayDiffId");
144
152
  });
153
+ (0, vitest_1.it)("treats --onlyUnreviewed as implying --includeAllDiffs (isSelected column + backend flag)", async () => {
154
+ mocks.getTestRunDiffsSummary.mockResolvedValue({
155
+ status: "complete",
156
+ data: [],
157
+ });
158
+ await runHandler({ onlyUnreviewed: true });
159
+ (0, vitest_1.expect)(exitSpy).not.toHaveBeenCalled();
160
+ // The request carries includeAllDiffs so the backend returns isSelected.
161
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).toHaveBeenCalledWith(vitest_1.expect.anything(), "tr-1", vitest_1.expect.objectContaining({ includeAllDiffs: true, onlyUnreviewed: true }));
162
+ // ...and the TSV header includes the isSelected column.
163
+ const stdout = logSpy.mock.calls.flat().join("\n");
164
+ (0, vitest_1.expect)(stdout.split("\n")[0].split("\t")).toContain("isSelected");
165
+ });
166
+ (0, vitest_1.it)("prints the counts from the dedicated endpoint (no summary poll) with --counts", async () => {
167
+ mocks.getTestRunDiffsSummaryCounts.mockResolvedValue({
168
+ numReplays: 5,
169
+ numDiffs: 2,
170
+ numApproved: 1,
171
+ numIgnored: 0,
172
+ numRejected: 0,
173
+ numUnreviewed: 1,
174
+ });
175
+ await runHandler({ counts: true });
176
+ (0, vitest_1.expect)(exitSpy).not.toHaveBeenCalled();
177
+ // Counts come from the dedicated endpoint; the diffs-summary list isn't fetched.
178
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummaryCounts).toHaveBeenCalledWith(vitest_1.expect.anything(), "tr-1");
179
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).not.toHaveBeenCalled();
180
+ const stdout = logSpy.mock.calls.flat().join("\n");
181
+ (0, vitest_1.expect)(stdout).toBe([
182
+ "numReplays\t5",
183
+ "numDiffs\t2",
184
+ "numApproved\t1",
185
+ "numIgnored\t0",
186
+ "numRejected\t0",
187
+ "numUnreviewed\t1",
188
+ ].join("\n"));
189
+ });
190
+ (0, vitest_1.it)("prints the counts as JSON with --counts --json (still compatible)", async () => {
191
+ mocks.getTestRunDiffsSummaryCounts.mockResolvedValue({
192
+ numReplays: 5,
193
+ numDiffs: 2,
194
+ numApproved: 1,
195
+ numIgnored: 0,
196
+ numRejected: 0,
197
+ numUnreviewed: 1,
198
+ });
199
+ await runHandler({ counts: true, json: true });
200
+ (0, vitest_1.expect)(exitSpy).not.toHaveBeenCalled();
201
+ const stdout = logSpy.mock.calls.flat().join("\n");
202
+ (0, vitest_1.expect)(JSON.parse(stdout)).toEqual({
203
+ numReplays: 5,
204
+ numDiffs: 2,
205
+ numApproved: 1,
206
+ numIgnored: 0,
207
+ numRejected: 0,
208
+ numUnreviewed: 1,
209
+ });
210
+ });
211
+ (0, vitest_1.it)("emits nothing for --counts on an in-progress run reported without waiting", async () => {
212
+ // ensureTestRunFinished returns null (and logs the in-progress notice to
213
+ // stderr) when the run is unfinished and --dontWaitForTestRunToComplete.
214
+ mocks.ensureTestRunFinished.mockResolvedValue(null);
215
+ await runHandler({ counts: true, dontWaitForTestRunToComplete: true });
216
+ (0, vitest_1.expect)(exitSpy).not.toHaveBeenCalled();
217
+ // No live counts to report — emit nothing rather than a misleading row of
218
+ // zeros. The counts endpoint isn't hit either.
219
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummaryCounts).not.toHaveBeenCalled();
220
+ (0, vitest_1.expect)(logSpy).not.toHaveBeenCalled();
221
+ });
222
+ vitest_1.it.each([
223
+ "includeReplayIds",
224
+ "includeDomDiffIds",
225
+ "includeAllDiffs",
226
+ "orderByReplayDiffs",
227
+ "includeReviewDecisions",
228
+ "onlyUnreviewed",
229
+ ])("rejects --counts combined with --%s before any network call", async (flag) => {
230
+ await (0, vitest_1.expect)(runHandler({ counts: true, [flag]: true })).rejects.toThrow(cli_user_error_1.CliUserError);
231
+ // Rejected up front: neither the run nor either diffs endpoint is touched.
232
+ (0, vitest_1.expect)(mocks.createClientWithOAuth).not.toHaveBeenCalled();
233
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummaryCounts).not.toHaveBeenCalled();
234
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).not.toHaveBeenCalled();
235
+ });
145
236
  });
146
- //# sourceMappingURL=test-run-diffs.command.spec.js.map
237
+ //# sourceMappingURL=test-run-diffs.command.spec.js.map
238
+ //# debugId=9fe20f72-fcfb-550f-b1d3-92580629a3a1
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-diffs.command.spec.js","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.command.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-run-diffs.command.spec.js","sources":["../../../src/commands/agent/test-run-diffs.command.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"9fe20f72-fcfb-550f-b1d3-92580629a3a1"}
@@ -1,4 +1,4 @@
1
- import type { DiffsSummaryReplayDiff, DiffsSummaryScreenshot } from "@alwaysmeticulous/client";
1
+ import type { DiffsSummaryCountsResponse, DiffsSummaryReplayDiff, DiffsSummaryScreenshot } from "@alwaysmeticulous/client";
2
2
  /** A single (replay diff, screenshot) pair — one row of the TSV output. */
3
3
  export interface DiffRow {
4
4
  replayDiff: DiffsSummaryReplayDiff;
@@ -6,44 +6,36 @@ export interface DiffRow {
6
6
  }
7
7
  /** Which optional columns the TSV output includes. */
8
8
  export interface DiffsSummaryColumns {
9
- /** Order by replay diff then event index; adds the index/total columns. */
9
+ /**
10
+ * Group the JSON output by replay diff (screenshots nested underneath) instead
11
+ * of a flat list. Either way the global `index` gives the ordering.
12
+ */
10
13
  orderByReplayDiffs: boolean;
11
14
  /** Add the domDiffIds column. */
12
15
  includeDomDiffIds: boolean;
13
- /**
14
- * Effective "all diffs" — true when --includeAllDiffs or --includeMatches is
15
- * set (see {@link resolveIncludeAllDiffs}); adds the isSelected column.
16
- */
16
+ /** Return every diff, not just the selected subset; adds the isSelected column. */
17
17
  includeAllDiffs: boolean;
18
18
  /** Add the base/head replay ID columns. */
19
19
  includeReplayIds: boolean;
20
+ /** Add the `decision` column (the PR review decision per diff). */
21
+ includeReviewDecisions: boolean;
20
22
  }
23
+ /** `key\tvalue` lines for the `--counts` output in the default (non-JSON) mode. */
24
+ export declare const formatDiffsSummaryCounts: (counts: DiffsSummaryCountsResponse) => string[];
21
25
  /**
22
- * --includeMatches implies --includeAllDiffs: matches are never part of the
23
- * selected representative subset, so they only make sense alongside the full
24
- * set of diffs.
25
- */
26
- export declare const resolveIncludeAllDiffs: ({ includeAllDiffs, includeMatches, }: {
27
- includeAllDiffs: boolean;
28
- includeMatches: boolean;
29
- }) => boolean;
30
- /**
31
- * Flattens replay diffs into one list of rows. By default the backend's `index`
32
- * is a flat cross-replay-diff priority rank, so we sort by it (a flat order the
33
- * grouped response can't express). With orderByReplayDiffs the backend already
34
- * returns rows grouped by replay diff in event order, which we preserve.
35
- */
36
- export declare const flattenDiffRows: (data: DiffsSummaryReplayDiff[], orderByReplayDiffs: boolean) => DiffRow[];
37
- /**
38
- * Builds the TSV header. index/total are only meaningful with orderByReplayDiffs;
39
- * by default rows are already in priority order, so the index is omitted.
26
+ * Flattens replay diffs into one list of rows, sorted by the backend's global
27
+ * `index`. That index is a flat priority rank by default, or a replayDiff-grouped
28
+ * rank under orderByReplayDiffs — either way sorting by it yields the intended
29
+ * order (which the grouped response can't express positionally).
40
30
  */
31
+ export declare const flattenDiffRows: (data: DiffsSummaryReplayDiff[]) => DiffRow[];
32
+ /** Builds the TSV header. `index` is the global rank the rows are ordered by. */
41
33
  export declare const buildDiffsSummaryHeader: (columns: DiffsSummaryColumns) => string[];
42
34
  /**
43
35
  * Builds the JSON equivalent of the TSV, gated by the same columns. By default
44
- * it's a flat array (one object per screenshot, in the same priority order as
45
- * the TSV). With orderByReplayDiffs it nests one level — an array of replay
46
- * diffs, each with its screenshots grouped underneath (index/total then apply).
36
+ * it's a flat array (one object per screenshot, in global `index` order). With
37
+ * orderByReplayDiffs it nests one level — an array of replay diffs, each with its
38
+ * screenshots grouped underneath.
47
39
  */
48
40
  export declare const buildDiffsSummaryJson: (data: DiffsSummaryReplayDiff[], columns: DiffsSummaryColumns) => unknown[];
49
41
  /** Formats a single row's fields, gated by the same columns as the header. */
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-diffs.utils.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,sBAAsB,CAAC;IACnC,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAKD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,yCAGhC;IACD,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB,KAAG,OAA4C,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SACpB,sBAAsB,EAAE,sBACV,OAAO,KAC1B,OAAO,EAQT,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,YACzB,mBAAmB,KAC3B,MAAM,EAQR,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAC1B,sBAAsB,EAAE,WACrB,mBAAmB,KAC3B,OAAO,EA2BT,CAAC;AAoBF,8EAA8E;AAC9E,eAAO,MAAM,aAAa,+BACI,OAAO,WAC1B,mBAAmB,KAC3B,CAAC,MAAM,GAAG,MAAM,CAAC,EAcnB,CAAC"}
1
+ {"version":3,"file":"test-run-diffs.utils.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,sBAAsB,CAAC;IACnC,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,WAC3B,0BAA0B,KACjC,MAAM,EAOR,CAAC;AAKF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SAAU,sBAAsB,EAAE,KAAG,OAAO,EAMvE,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,YACzB,mBAAmB,KAC3B,MAAM,EAaR,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAC1B,sBAAsB,EAAE,WACrB,mBAAmB,KAC3B,OAAO,EAyBT,CAAC;AAqBF,8EAA8E;AAC9E,eAAO,MAAM,aAAa,+BACI,OAAO,WAC1B,mBAAmB,KAC3B,CAAC,MAAM,GAAG,MAAM,CAAC,EAcnB,CAAC"}
@@ -1,41 +1,46 @@
1
1
  "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3f1c4920-c15b-5978-8bc9-69bf15f381f7")}catch(e){}}();
3
+
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatDiffRow = exports.buildDiffsSummaryJson = exports.buildDiffsSummaryHeader = exports.flattenDiffRows = exports.resolveIncludeAllDiffs = void 0;
5
+ exports.formatDiffRow = exports.buildDiffsSummaryJson = exports.buildDiffsSummaryHeader = exports.flattenDiffRows = exports.formatDiffsSummaryCounts = void 0;
6
+ /** `key\tvalue` lines for the `--counts` output in the default (non-JSON) mode. */
7
+ const formatDiffsSummaryCounts = (counts) => [
8
+ `numReplays\t${counts.numReplays}`,
9
+ `numDiffs\t${counts.numDiffs}`,
10
+ `numApproved\t${counts.numApproved}`,
11
+ `numIgnored\t${counts.numIgnored}`,
12
+ `numRejected\t${counts.numRejected}`,
13
+ `numUnreviewed\t${counts.numUnreviewed}`,
14
+ ];
15
+ exports.formatDiffsSummaryCounts = formatDiffsSummaryCounts;
4
16
  const fmtMismatch = (v) => v != null ? v.toFixed(5) : "";
5
17
  /**
6
- * --includeMatches implies --includeAllDiffs: matches are never part of the
7
- * selected representative subset, so they only make sense alongside the full
8
- * set of diffs.
18
+ * Flattens replay diffs into one list of rows, sorted by the backend's global
19
+ * `index`. That index is a flat priority rank by default, or a replayDiff-grouped
20
+ * rank under orderByReplayDiffs — either way sorting by it yields the intended
21
+ * order (which the grouped response can't express positionally).
9
22
  */
10
- const resolveIncludeAllDiffs = ({ includeAllDiffs, includeMatches, }) => includeAllDiffs || includeMatches;
11
- exports.resolveIncludeAllDiffs = resolveIncludeAllDiffs;
12
- /**
13
- * Flattens replay diffs into one list of rows. By default the backend's `index`
14
- * is a flat cross-replay-diff priority rank, so we sort by it (a flat order the
15
- * grouped response can't express). With orderByReplayDiffs the backend already
16
- * returns rows grouped by replay diff in event order, which we preserve.
17
- */
18
- const flattenDiffRows = (data, orderByReplayDiffs) => {
23
+ const flattenDiffRows = (data) => {
19
24
  const rows = data.flatMap((replayDiff) => replayDiff.screenshots.map((screenshot) => ({ replayDiff, screenshot })));
20
- if (!orderByReplayDiffs) {
21
- rows.sort((a, b) => a.screenshot.index - b.screenshot.index);
22
- }
25
+ rows.sort((a, b) => a.screenshot.index - b.screenshot.index);
23
26
  return rows;
24
27
  };
25
28
  exports.flattenDiffRows = flattenDiffRows;
26
- /**
27
- * Builds the TSV header. index/total are only meaningful with orderByReplayDiffs;
28
- * by default rows are already in priority order, so the index is omitted.
29
- */
29
+ /** Builds the TSV header. `index` is the global rank the rows are ordered by. */
30
30
  const buildDiffsSummaryHeader = (columns) => {
31
- const fields = ["replayDiffId", "screenshotName"];
32
- if (columns.orderByReplayDiffs)
33
- fields.push("index", "total");
34
- fields.push("outcome", "mismatch");
31
+ const fields = [
32
+ "replayDiffId",
33
+ "screenshotName",
34
+ "index",
35
+ "outcome",
36
+ "mismatch",
37
+ ];
35
38
  if (columns.includeDomDiffIds)
36
39
  fields.push("domDiffIds");
37
40
  if (columns.includeAllDiffs)
38
41
  fields.push("isSelected");
42
+ if (columns.includeReviewDecisions)
43
+ fields.push("decision");
39
44
  if (columns.includeReplayIds)
40
45
  fields.push("baseReplayId", "headReplayId");
41
46
  return fields;
@@ -43,9 +48,9 @@ const buildDiffsSummaryHeader = (columns) => {
43
48
  exports.buildDiffsSummaryHeader = buildDiffsSummaryHeader;
44
49
  /**
45
50
  * Builds the JSON equivalent of the TSV, gated by the same columns. By default
46
- * it's a flat array (one object per screenshot, in the same priority order as
47
- * the TSV). With orderByReplayDiffs it nests one level — an array of replay
48
- * diffs, each with its screenshots grouped underneath (index/total then apply).
51
+ * it's a flat array (one object per screenshot, in global `index` order). With
52
+ * orderByReplayDiffs it nests one level — an array of replay diffs, each with its
53
+ * screenshots grouped underneath.
49
54
  */
50
55
  const buildDiffsSummaryJson = (data, columns) => {
51
56
  if (columns.orderByReplayDiffs) {
@@ -60,7 +65,7 @@ const buildDiffsSummaryJson = (data, columns) => {
60
65
  screenshots: replayDiff.screenshots.map((screenshot) => screenshotToJson(screenshot, columns)),
61
66
  }));
62
67
  }
63
- return (0, exports.flattenDiffRows)(data, columns.orderByReplayDiffs).map(({ replayDiff, screenshot }) => ({
68
+ return (0, exports.flattenDiffRows)(data).map(({ replayDiff, screenshot }) => ({
64
69
  replayDiffId: replayDiff.replayDiffId,
65
70
  ...screenshotToJson(screenshot, columns),
66
71
  ...(columns.includeReplayIds
@@ -74,9 +79,7 @@ const buildDiffsSummaryJson = (data, columns) => {
74
79
  exports.buildDiffsSummaryJson = buildDiffsSummaryJson;
75
80
  const screenshotToJson = (screenshot, columns) => ({
76
81
  screenshotName: screenshot.screenshotName,
77
- ...(columns.orderByReplayDiffs
78
- ? { index: screenshot.index, total: screenshot.total ?? null }
79
- : {}),
82
+ index: screenshot.index,
80
83
  outcome: screenshot.outcome,
81
84
  mismatch: screenshot.mismatchFraction ?? null,
82
85
  ...(columns.includeDomDiffIds
@@ -85,23 +88,28 @@ const screenshotToJson = (screenshot, columns) => ({
85
88
  ...(columns.includeAllDiffs
86
89
  ? { isSelected: screenshot.isSelected ?? false }
87
90
  : {}),
91
+ ...(columns.includeReviewDecisions
92
+ ? { decision: screenshot.decision ?? null }
93
+ : {}),
88
94
  });
89
95
  /** Formats a single row's fields, gated by the same columns as the header. */
90
96
  const formatDiffRow = ({ replayDiff, screenshot }, columns) => {
91
97
  const fields = [
92
98
  replayDiff.replayDiffId,
93
99
  screenshot.screenshotName,
100
+ screenshot.index,
94
101
  ];
95
- if (columns.orderByReplayDiffs)
96
- fields.push(screenshot.index, screenshot.total ?? "");
97
102
  fields.push(screenshot.outcome, fmtMismatch(screenshot.mismatchFraction));
98
103
  if (columns.includeDomDiffIds)
99
104
  fields.push(screenshot.domDiffIds ?? "");
100
105
  if (columns.includeAllDiffs)
101
106
  fields.push(String(screenshot.isSelected ?? false));
107
+ if (columns.includeReviewDecisions)
108
+ fields.push(screenshot.decision ?? "");
102
109
  if (columns.includeReplayIds)
103
110
  fields.push(replayDiff.baseReplayId ?? "", replayDiff.headReplayId ?? "");
104
111
  return fields;
105
112
  };
106
113
  exports.formatDiffRow = formatDiffRow;
107
- //# sourceMappingURL=test-run-diffs.utils.js.map
114
+ //# sourceMappingURL=test-run-diffs.utils.js.map
115
+ //# debugId=3f1c4920-c15b-5978-8bc9-69bf15f381f7