@codyswann/lisa 4.42.6 → 4.42.7

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 (150) hide show
  1. package/README.md +4 -0
  2. package/all/copy-overwrite/scripts/check-orphaned-branches.mjs +7 -0
  3. package/all/copy-overwrite/scripts/lib/process-tree-runner.mjs +12 -2
  4. package/all/copy-overwrite/scripts/lisa-cross-worktree-guard.mjs +4 -0
  5. package/all/copy-overwrite/scripts/lisa-environment-prepare.mjs +2 -0
  6. package/all/copy-overwrite/scripts/lisa-hooks/worktree-binding-guard.mjs +31 -3
  7. package/all/copy-overwrite/scripts/lisa-run-gates.mjs +4 -0
  8. package/all/copy-overwrite/scripts/lisa-work-item.mjs +13 -0
  9. package/dist/configs/vitest/base.d.ts +1 -1
  10. package/dist/configs/vitest/base.d.ts.map +1 -1
  11. package/dist/configs/vitest/base.js +1 -0
  12. package/dist/configs/vitest/base.js.map +1 -1
  13. package/dist/configs/vitest/cdk.d.ts +2 -2
  14. package/dist/configs/vitest/cdk.d.ts.map +1 -1
  15. package/dist/configs/vitest/cdk.js +5 -2
  16. package/dist/configs/vitest/cdk.js.map +1 -1
  17. package/dist/configs/vitest/coverage-reports-directory.d.ts +47 -0
  18. package/dist/configs/vitest/coverage-reports-directory.d.ts.map +1 -0
  19. package/dist/configs/vitest/coverage-reports-directory.js +131 -0
  20. package/dist/configs/vitest/coverage-reports-directory.js.map +1 -0
  21. package/dist/configs/vitest/harper-fabric.d.ts +2 -2
  22. package/dist/configs/vitest/harper-fabric.d.ts.map +1 -1
  23. package/dist/configs/vitest/harper-fabric.js +5 -2
  24. package/dist/configs/vitest/harper-fabric.js.map +1 -1
  25. package/dist/configs/vitest/nestjs.d.ts +2 -2
  26. package/dist/configs/vitest/nestjs.d.ts.map +1 -1
  27. package/dist/configs/vitest/nestjs.js +5 -2
  28. package/dist/configs/vitest/nestjs.js.map +1 -1
  29. package/dist/configs/vitest/phaser.d.ts +2 -2
  30. package/dist/configs/vitest/phaser.d.ts.map +1 -1
  31. package/dist/configs/vitest/phaser.js +5 -2
  32. package/dist/configs/vitest/phaser.js.map +1 -1
  33. package/dist/configs/vitest/typescript.d.ts +2 -2
  34. package/dist/configs/vitest/typescript.d.ts.map +1 -1
  35. package/dist/configs/vitest/typescript.js +5 -2
  36. package/dist/configs/vitest/typescript.js.map +1 -1
  37. package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
  38. package/dist/core/lisa-owned-hash-ledger.js +24 -0
  39. package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
  40. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  41. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  42. package/dist/core/upstream-evidence-manifest.js +30 -23
  43. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  44. package/expo/copy-overwrite/scripts/bdd/baseline.mjs +26 -7
  45. package/package.json +5 -4
  46. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  47. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  48. package/plugins/lisa/.codex-plugin/skills/lisa-drive-pr-to-merge/SKILL.md +11 -0
  49. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +3 -0
  50. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +3 -0
  51. package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/providers.mjs +4 -0
  52. package/plugins/lisa/.codex-plugin/skills/lisa-setup-workstation/scripts/workstation.mjs +3 -0
  53. package/plugins/lisa/hooks/threshold-ratchet.mjs +6 -0
  54. package/plugins/lisa/hooks/worktree-binding-guard.mjs +31 -3
  55. package/plugins/lisa/scripts/design-variable-ids.mjs +2 -0
  56. package/plugins/lisa/skills/lisa-drive-pr-to-merge/SKILL.md +11 -0
  57. package/plugins/lisa/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +3 -0
  58. package/plugins/lisa/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +3 -0
  59. package/plugins/lisa/skills/lisa-secrets-access/scripts/providers.mjs +4 -0
  60. package/plugins/lisa/skills/lisa-setup-workstation/scripts/workstation.mjs +3 -0
  61. package/plugins/lisa-agy/plugin.json +1 -1
  62. package/plugins/lisa-agy/scripts/design-variable-ids.mjs +2 -0
  63. package/plugins/lisa-agy/skills/lisa-drive-pr-to-merge/SKILL.md +11 -0
  64. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +3 -0
  65. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +3 -0
  66. package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/providers.mjs +4 -0
  67. package/plugins/lisa-agy/skills/lisa-setup-workstation/scripts/workstation.mjs +3 -0
  68. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  69. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  70. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  71. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  72. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  73. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  74. package/plugins/lisa-copilot/hooks/threshold-ratchet.mjs +6 -0
  75. package/plugins/lisa-copilot/hooks/worktree-binding-guard.mjs +31 -3
  76. package/plugins/lisa-copilot/scripts/design-variable-ids.mjs +2 -0
  77. package/plugins/lisa-copilot/skills/lisa-drive-pr-to-merge/SKILL.md +11 -0
  78. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +3 -0
  79. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +3 -0
  80. package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/providers.mjs +4 -0
  81. package/plugins/lisa-copilot/skills/lisa-setup-workstation/scripts/workstation.mjs +3 -0
  82. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  83. package/plugins/lisa-cursor/hooks/threshold-ratchet.mjs +6 -0
  84. package/plugins/lisa-cursor/hooks/worktree-binding-guard.mjs +31 -3
  85. package/plugins/lisa-cursor/scripts/design-variable-ids.mjs +2 -0
  86. package/plugins/lisa-cursor/skills/lisa-drive-pr-to-merge/SKILL.md +11 -0
  87. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +3 -0
  88. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +3 -0
  89. package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/providers.mjs +4 -0
  90. package/plugins/lisa-cursor/skills/lisa-setup-workstation/scripts/workstation.mjs +3 -0
  91. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  92. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  93. package/plugins/lisa-expo-agy/plugin.json +1 -1
  94. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  95. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  96. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  97. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  98. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  99. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  100. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  101. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  102. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  103. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  104. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  105. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  106. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  107. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  108. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  109. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  110. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  111. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  112. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  113. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  114. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  115. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  116. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  117. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  118. package/plugins/lisa-rails-agy/plugin.json +1 -1
  119. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  120. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  121. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  122. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  123. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  124. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  125. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  126. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  127. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  128. package/plugins/lisa-wiki/scripts/ingest-git.mjs +2 -0
  129. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  130. package/plugins/lisa-wiki-agy/scripts/ingest-git.mjs +2 -0
  131. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  132. package/plugins/lisa-wiki-copilot/scripts/ingest-git.mjs +2 -0
  133. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  134. package/plugins/lisa-wiki-cursor/scripts/ingest-git.mjs +2 -0
  135. package/plugins/src/base/hooks/threshold-ratchet.mjs +6 -0
  136. package/plugins/src/base/hooks/worktree-binding-guard.mjs +31 -3
  137. package/plugins/src/base/scripts/design-variable-ids.mjs +2 -0
  138. package/plugins/src/base/skills/lisa-drive-pr-to-merge/SKILL.md +11 -0
  139. package/plugins/src/base/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +3 -0
  140. package/plugins/src/base/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +3 -0
  141. package/plugins/src/base/skills/lisa-secrets-access/scripts/providers.mjs +4 -0
  142. package/plugins/src/base/skills/lisa-setup-workstation/scripts/workstation.mjs +3 -0
  143. package/plugins/src/wiki/scripts/ingest-git.mjs +2 -0
  144. package/rails/copy-overwrite/scripts/check-threshold-ratchet.mjs +6 -0
  145. package/scripts/check-merge-driver-registration.mjs +2 -0
  146. package/scripts/check-probe-absence-direction.mjs +611 -0
  147. package/scripts/install-generated-artifact-merge-driver.mjs +7 -1
  148. package/scripts/lib/shell-guard-refusal-coverage.mjs +18 -19
  149. package/typescript/copy-overwrite/scripts/check-threshold-ratchet.mjs +6 -0
  150. package/typescript/copy-overwrite/scripts/lisa-mutation.mjs +4 -0
package/README.md CHANGED
@@ -283,6 +283,10 @@ You do not have to configure any of this. A run discovers how many sibling runs
283
283
 
284
284
  A smaller pool is not automatically safer, which is why the floor is a proportion rather than a small constant and why the divisor stops at two workers. Below that a suite serialises, every file waits behind every other file, and per-test time budgets start expiring even as machine load falls — trading a visible failure for a subtler one.
285
285
 
286
+ Worker count is not the only thing several runs contend over. Coverage runs write their working files to disk while they measure, and a shared location means the second run to start wipes the first one's files out from under it — so the first run finishes having measured nothing, after paying the full cost of the attempt. Lisa gives every run its own directory under `coverage/`, named after the run, so no run can reach another's files and none of them has to negotiate for the space. Your finished coverage reports land in that per-run directory rather than directly in `coverage/`.
287
+
288
+ - **`LISA_COVERAGE_REPORTS_DIR`** — put the reports at a fixed path instead. For somewhere only one run happens at a time and something downstream expects to find the report in a known place, such as a CI job that uploads `coverage/lcov.info`.
289
+
286
290
  > **Prompt for your coding agent**
287
291
  > "Show me how this project's test worker pool is sized — find the resolver, tell me what each of the three layers would give on this machine right now, and how many sibling runs it currently detects."
288
292
 
@@ -161,6 +161,10 @@ function run(command, args) {
161
161
  encoding: "utf8",
162
162
  maxBuffer: 8 * 1024 * 1024,
163
163
  });
164
+ // probe-direction: fail-closed — every caller of this helper refuses on
165
+ // undefined (`EXIT.UNAVAILABLE`, "This is NOT a clean result") instead of
166
+ // reporting a clean tree, so losing the answer costs a refusal, never a
167
+ // missed orphan.
164
168
  if (result.error || result.status !== 0) return undefined;
165
169
  return result.stdout.trim();
166
170
  }
@@ -211,6 +215,9 @@ export function branchesWithPullRequests() {
211
215
  : []
212
216
  );
213
217
  } catch {
218
+ // probe-direction: fail-closed — unparseable output is not an empty pull-
219
+ // request set. `main` turns undefined into EXIT.UNAVAILABLE, so a branch is
220
+ // never called orphaned because the listing could not be read.
214
221
  return undefined;
215
222
  }
216
223
  }
@@ -155,8 +155,18 @@ export function windowsTreeExists(pid, probe = process.kill) {
155
155
  try {
156
156
  probe(pid, 0);
157
157
  return true;
158
- } catch {
159
- return false;
158
+ } catch (error) {
159
+ // probe-direction: fail-closed — only an ESRCH-shaped error proves the
160
+ // process is gone. A blanket `return false` reported EPERM, and every other
161
+ // failure to ask, as "the tree exited": `killWindowsTree` then returns
162
+ // without killing anything and `waitForTreeExit` stops waiting, so a live
163
+ // tree is left behind and recorded as reaped. That is the exact rule
164
+ // `killTree` states two functions below — "Only ESRCH proves absence.
165
+ // EPERM and every other error leave cleanup authority uncertain and must
166
+ // fail the supervisor closed" — which the POSIX sibling followed and this
167
+ // one did not.
168
+ if (isAbsentProcessError(error)) return false;
169
+ throw error;
160
170
  }
161
171
  }
162
172
 
@@ -107,6 +107,10 @@ function probe(args, cwd) {
107
107
  stdio: ["ignore", "pipe", "ignore"],
108
108
  }).trim();
109
109
  } catch {
110
+ // probe-direction: fail-closed — every consumer reads null as "not proven
111
+ // safe": `isIntegrationContent` and `declaresItselfGenerated` return false,
112
+ // and `integrationRef` yields null, each of which makes the guard FIRE.
113
+ // A git that cannot answer costs a false report, never a silent pass.
110
114
  return null;
111
115
  }
112
116
  }
@@ -219,6 +219,8 @@ function spawnExec(argv) {
219
219
  // Not dead code: a non-timeout `spawnSync` failure — `ENOENT` for a runner
220
220
  // that is not installed — still arrives on the result rather than as a
221
221
  // throw, and it means the verb did not run, which is the same verdict.
222
+ // probe-direction: fail-closed — null means the verb did not run, and the
223
+ // caller renders that as a refusal rather than as a passing verb.
222
224
  if (child.error) return null;
223
225
  return child.status;
224
226
  } catch (error) {
@@ -99,14 +99,35 @@ function git(args, cwd) {
99
99
  stdio: ["ignore", "pipe", "ignore"],
100
100
  }).trim();
101
101
  } catch {
102
+ // probe-direction: neutral — this helper REPORTS, it does not decide. Both
103
+ // callers below read null and each one says out loud what it could not do
104
+ // before returning, so no gate outcome follows from this null silently
105
+ // (#3848). Keep that true: a caller added here that spends null as an
106
+ // answer has to say so at its own line.
102
107
  return null;
103
108
  }
104
109
  }
105
110
 
106
- /** The worktree root containing `cwd`, or null when `cwd` is not in a repo. */
111
+ /**
112
+ * The worktree root containing `cwd`, or null when `cwd` is not in a repo.
113
+ *
114
+ * `--show-toplevel` exits non-zero for two OPPOSITE reasons and hands back the
115
+ * same nothing for both: `cwd` is outside any repository — a real absence, and
116
+ * a call there is genuinely none of this guard's business — or git could not
117
+ * answer at all, where the binding is unproven rather than inapplicable. Only
118
+ * the second is a withdrawal of enforcement, and it is the one that must not
119
+ * pass for the first. `git --version` succeeds wherever git can run, so its
120
+ * failure is what separates them.
121
+ * @param {string} cwd Directory the tool call runs in.
122
+ * @returns {string|null} Absolute worktree root, or null.
123
+ */
107
124
  function worktreeRoot(cwd) {
108
125
  const top = git(["rev-parse", "--show-toplevel"], cwd);
109
- return top ? resolve(top) : null;
126
+ if (top) return resolve(top);
127
+ if (git(["--version"], cwd) === null) {
128
+ say("git could not be run here, so the worktree binding is NOT enforced");
129
+ }
130
+ return null;
110
131
  }
111
132
 
112
133
  /**
@@ -120,7 +141,14 @@ function mainCheckout(cwd) {
120
141
  ["rev-parse", "--path-format=absolute", "--git-common-dir"],
121
142
  cwd
122
143
  );
123
- return common ? dirname(resolve(common)) : null;
144
+ if (common) return dirname(resolve(common));
145
+ // Reached only for an `EnterWorktree` naming a worktree, which means a
146
+ // repository was already in hand — so failing here is "could not ask", and
147
+ // the consequence is that the claim goes unrecorded and the NEXT call's
148
+ // displacement check has nothing to compare against. Said out loud rather
149
+ // than returned as a quiet null (#3848).
150
+ say("git could not resolve the main checkout, so this claim is NOT recorded");
151
+ return null;
124
152
  }
125
153
 
126
154
  function stateFile(sessionId) {
@@ -1287,9 +1287,13 @@ function gitRev(spec) {
1287
1287
  encoding: "utf8",
1288
1288
  stdio: ["ignore", "pipe", "ignore"],
1289
1289
  });
1290
+ // probe-direction: neutral — the value is a subject field in the run record.
1291
+ // No gate reads it; an unresolved revision is printed as unknown.
1290
1292
  if (child.error || child.status !== 0) return null;
1291
1293
  return String(child.stdout ?? "").trim() || null;
1292
1294
  } catch {
1295
+ // probe-direction: neutral — same field, same reason: a killed `git` is
1296
+ // recorded as an unknown revision and gates no verdict.
1293
1297
  // A killed `git` is not an answer about the tree, and this module's own
1294
1298
  // doctrine is that an unknown answer is recorded as unknown.
1295
1299
  return null;
@@ -1110,10 +1110,15 @@ function configAt(ref) {
1110
1110
  const result = run("git", ["show", `${ref}:.lisa.config.json`], {
1111
1111
  allowFailure: true,
1112
1112
  });
1113
+ // probe-direction: fail-closed — an empty config grants no deploy-chain
1114
+ // exemption, so a config that cannot be read at the base makes the gate
1115
+ // stricter, never looser.
1113
1116
  if (result.status !== 0) return {};
1114
1117
  try {
1115
1118
  return JSON.parse(result.stdout);
1116
1119
  } catch {
1120
+ // probe-direction: fail-closed — same as above: unparseable config, no
1121
+ // exemption granted.
1117
1122
  return {};
1118
1123
  }
1119
1124
  }
@@ -2426,6 +2431,8 @@ function remoteDefaultRef(remote) {
2426
2431
  ["symbolic-ref", "--quiet", `refs/remotes/${remote}/HEAD`],
2427
2432
  { allowFailure: true }
2428
2433
  );
2434
+ // probe-direction: fail-closed — no ref means no range exclusion, so the
2435
+ // commit range examined grows rather than shrinks (#1956).
2429
2436
  if (symref.status !== 0) return undefined;
2430
2437
  const target = symref.stdout.trim();
2431
2438
  if (!target.startsWith(`refs/remotes/${remote}/`)) return undefined;
@@ -3152,6 +3159,12 @@ function currentRepository() {
3152
3159
  const result = run("gh", ["repo", "view", "--json", "nameWithOwner"], {
3153
3160
  allowFailure: true,
3154
3161
  });
3162
+ // probe-direction: neutral — undefined omits `--repo`, which is the CORRECT
3163
+ // call shape: `gh` then resolves the repository from the current branch's
3164
+ // remote. Note the asymmetry that #3848 turns on — this call SUCCEEDING is
3165
+ // what supplied the `--repo` value that broke `currentPullRequest` before
3166
+ // #3833, so it was upstream of that defect rather than beside it. Neutral
3167
+ // is a fact about the code as it stands, not a property of the call site.
3155
3168
  if (result.status !== 0) return undefined;
3156
3169
  return safeJson(result.stdout, "GitHub repository").nameWithOwner;
3157
3170
  }
@@ -295,5 +295,5 @@ export declare const mergeThresholds: (defaults: PortableThresholds, overrides:
295
295
  * @returns Single merged UserConfig
296
296
  */
297
297
  export declare const mergeVitestConfigs: (...configs: UserConfig[]) => UserConfig;
298
- export {};
298
+ export { COVERAGE_REPORTS_DIR_ENV, COVERAGE_RUNS_DIR, coverageReportsDirectory, coverageRunDirectory, resetCoverageReportsDirectory, } from "./coverage-reports-directory.js";
299
299
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,kBAO/B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAatD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAGlD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAItD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAenC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,GAAE;IACJ,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,SAAS,MAAM,EAAE,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACV,GACL,MAAM,CAoBR;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,GAAE,MAAM,CAAC,UAAgB,EACpC,KAAK,GAAE,MAA+B,EACtC,QAAQ,GAAE,MAAM,MAAiC,GAChD,MAAM,GAAG,MAAM,CAUjB;AAoBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAKrD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,kBAAkB,KAC7B,gBAaD,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,kBAAkB,EAC5B,WAAW,kBAAkB,KAC5B,kBAiBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,SAAS,UAAU,EAAE,KAAG,UA4C7D,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"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"}
@@ -449,4 +449,5 @@ export const mergeVitestConfigs = (...configs) => {
449
449
  };
450
450
  }, {});
451
451
  };
452
+ export { COVERAGE_REPORTS_DIR_ENV, COVERAGE_RUNS_DIR, coverageReportsDirectory, coverageRunDirectory, resetCoverageReportsDirectory, } from "./coverage-reports-directory.js";
452
453
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/configs/vitest/base.ts"],"names":[],"mappings":"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"}
@@ -13,13 +13,13 @@
13
13
  import type { ViteUserConfig } from "vitest/config";
14
14
  /** Vite UserConfig augmented with Vitest's `test` property */
15
15
  type UserConfig = ViteUserConfig;
16
- import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
16
+ import { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
17
17
  import type { PortableThresholds } from "./base.js";
18
18
  /** Prefix used by AWS CDK's default CloudAssemblyBuilder output directory. */
19
19
  export declare const CDK_SCRATCH_PREFIX = "cdk.out";
20
20
  /** Opaque owner label recorded before a CDK suite is collected. */
21
21
  export declare const CDK_SCRATCH_SUITE = "cdk";
22
- export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
22
+ export { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
23
23
  export type { PortableThresholds };
24
24
  /**
25
25
  * Options for configuring the CDK Vitest config factory.
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAGvC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,gBAAgB;IACxB,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,kBAEhC,gBAAqB,KAAG,UA4BzB,CAAC"}
1
+ {"version":3,"file":"cdk.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAGvC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,gBAAgB;IACxB,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,GAAI,kBAEhC,gBAAqB,KAAG,UA+BzB,CAAC"}
@@ -1,10 +1,10 @@
1
- import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
1
+ import { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
2
  /** Prefix used by AWS CDK's default CloudAssemblyBuilder output directory. */
3
3
  export const CDK_SCRATCH_PREFIX = "cdk.out";
4
4
  /** Opaque owner label recorded before a CDK suite is collected. */
5
5
  export const CDK_SCRATCH_SUITE = "cdk";
6
6
  // Re-export base utilities for entry-point configs
7
- export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
7
+ export { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
8
8
  /**
9
9
  * Creates a Vitest configuration for AWS CDK projects.
10
10
  *
@@ -35,6 +35,9 @@ export const getCdkVitestConfig = ({ thresholds, } = {}) => ({
35
35
  testTimeout: 10000,
36
36
  coverage: {
37
37
  provider: "v8",
38
+ // Per-run, so a sibling run in this checkout cannot delete this
39
+ // run's live scratch. See configs/vitest/coverage-reports-directory.
40
+ reportsDirectory: coverageReportsDirectory(),
38
41
  include: ["lib/**/*.ts", "util/**/*.ts"],
39
42
  exclude: [...defaultCoverageExclusions],
40
43
  thresholds: mapThresholds(thresholds
@@ -1 +1 @@
1
- {"version":3,"file":"cdk.js","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAInB,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,UAAU,MACU,EAAE,EAAc,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE;YACP,mBAAmB;YACnB,mBAAmB;YACnB,+BAA+B;YAC/B,+BAA+B;SAChC;QACD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;YACxC,OAAO,EAAE,CAAC,GAAG,yBAAyB,CAAC;YACvC,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"cdk.js","sourceRoot":"","sources":["../../../src/configs/vitest/cdk.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAInB,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,UAAU,MACU,EAAE,EAAc,EAAE,CAAC,CAAC;IACxC,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE;YACP,mBAAmB;YACnB,mBAAmB;YACnB,+BAA+B;YAC/B,+BAA+B;SAChC;QACD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,gEAAgE;YAChE,qEAAqE;YACrE,gBAAgB,EAAE,wBAAwB,EAAE;YAC5C,OAAO,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;YACxC,OAAO,EAAE,CAAC,GAAG,yBAAyB,CAAC;YACvC,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Directory under `coverage/` holding one run's isolated output.
3
+ *
4
+ * Nested under `coverage/` rather than placed beside it so the single
5
+ * `coverage/` entry every shipped `.gitignore` already carries keeps covering
6
+ * it, and so the coverage artifacts of a checkout stay in one findable place.
7
+ */
8
+ export declare const COVERAGE_RUNS_DIR = ".runs";
9
+ /**
10
+ * Environment variable pinning the reports directory to a caller-chosen path.
11
+ *
12
+ * For the environment where isolation is not needed and a STABLE path is —
13
+ * a CI job that runs one suite and then uploads `coverage/lcov.info`. Such a
14
+ * job is the single writer of its own workspace, so the collision this module
15
+ * prevents cannot arise there, and the caller pinning the path is the caller
16
+ * taking responsibility for that.
17
+ *
18
+ * Honoured verbatim. Vitest resolves a relative value against the project root
19
+ * exactly as it resolves its own default, so both forms work.
20
+ */
21
+ export declare const COVERAGE_REPORTS_DIR_ENV = "LISA_COVERAGE_REPORTS_DIR";
22
+ /**
23
+ * Builds the relative reports directory for one run.
24
+ *
25
+ * Separated from {@link coverageReportsDirectory} so tests can state the
26
+ * identity rather than mine it out of a memoized process-wide value.
27
+ * @param owner - Process id owning the run
28
+ * @param startedAt - Epoch milliseconds the directory was named
29
+ * @param suffix - Opaque random suffix, free of `-`
30
+ * @returns Root-relative path, POSIX-separated as Vitest's own default is.
31
+ */
32
+ export declare function coverageRunDirectory(owner: number, startedAt: number, suffix: string): string;
33
+ /**
34
+ * Resolves the coverage reports directory for this run.
35
+ * @param environment - Environment to read; defaults to this process's.
36
+ * @returns A value for Vitest's `coverage.reportsDirectory`.
37
+ */
38
+ export declare function coverageReportsDirectory(environment?: NodeJS.ProcessEnv): string;
39
+ /**
40
+ * Discards the memoized value.
41
+ *
42
+ * Test-only. Exported because the memo is the one piece of state here, and a
43
+ * suite that could not clear it would have to assert against whichever value
44
+ * an unrelated earlier case happened to allocate.
45
+ */
46
+ export declare function resetCoverageReportsDirectory(): void;
47
+ //# sourceMappingURL=coverage-reports-directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-reports-directory.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/coverage-reports-directory.ts"],"names":[],"mappings":"AAiEA;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,8BAA8B,CAAC;AAKpE;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,CAER;AAYD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,GAAE,MAAM,CAAC,UAAgB,GACnC,MAAM,CAUR;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Per-run isolation of the Vitest coverage reports directory.
3
+ *
4
+ * ## The defect this exists to prevent
5
+ *
6
+ * Vitest derives the coverage provider's scratch directory from
7
+ * `coverage.reportsDirectory` and offers no separate knob for it:
8
+ *
9
+ * ```js
10
+ * this.coverageFilesDirectory = resolve(this.options.reportsDirectory, ".tmp");
11
+ * ```
12
+ *
13
+ * and its initialisation then removes BOTH, recursively, before a single test
14
+ * file is globbed:
15
+ *
16
+ * ```js
17
+ * if (clean && existsSync(this.options.reportsDirectory)) await rm(...)
18
+ * if (existsSync(this.coverageFilesDirectory)) await rm(...)
19
+ * ```
20
+ *
21
+ * Read against a fixed default of `coverage/`, that is a shared mutable path:
22
+ * a second run starting in the same checkout deletes the first run's live
23
+ * scratch, and the first run reaches the end of its coverage phase with nothing
24
+ * to merge. Measured twice in one evening on one machine
25
+ * (CodySwannGT/lisa#3911), and the cost lands late — the coverage phase is the
26
+ * expensive stretch of the push gate, so the collision is discovered only after
27
+ * roughly 24 minutes have already been spent.
28
+ *
29
+ * ## Isolation, not coordination
30
+ *
31
+ * Each run gets a reports directory nothing else knows about, named from the
32
+ * run's OWN identity rather than from the repository path. Two runs in one
33
+ * checkout then cannot see each other's scratch, so vitest's unconditional
34
+ * `rm` reaches only paths its own process created.
35
+ *
36
+ * This deliberately introduces no lock, no lease, no liveness probe and no
37
+ * pre-run sweep:
38
+ *
39
+ * - a **lock or lease** serialises runs that have no reason to be serialised,
40
+ * and needs a liveness rule to release one held by a dead process — the same
41
+ * ownership adjudication that makes shared scratch hard in the first place;
42
+ * - a **sweep of the shared directory** is the failure rather than the fix:
43
+ * cleaning a directory two runs share is precisely what deletes the other
44
+ * run's files.
45
+ *
46
+ * The naming scheme is the one the scratch namespace already proved for the
47
+ * same class of collision — `run-<pid>-<startedAt>-<suffix>`, reused here via
48
+ * {@link runRootName} rather than re-spelled, so the two cannot drift apart.
49
+ *
50
+ * ## What this does not change
51
+ *
52
+ * The gate's ability to say UNPROVABLE rather than FAILED when a run produced
53
+ * no coverage number survives untouched, because the classifier that draws
54
+ * that distinction is keyed on the scratch FILENAME (`coverage-<n>.json`) and
55
+ * explicitly not on the directory — see `COVERAGE_SCRATCH_ENOENT` in
56
+ * `all/copy-overwrite/scripts/lib/gate-failure-diagnosis.mjs`. Moving the
57
+ * directory is the one change this file makes, and it is the one input that
58
+ * classifier does not read.
59
+ * @module configs/vitest/coverage-reports-directory
60
+ */
61
+ import { randomBytes } from "node:crypto";
62
+ import { env, pid } from "node:process";
63
+ import { runRootName } from "./scratch-namespace-authority.js";
64
+ /**
65
+ * Directory under `coverage/` holding one run's isolated output.
66
+ *
67
+ * Nested under `coverage/` rather than placed beside it so the single
68
+ * `coverage/` entry every shipped `.gitignore` already carries keeps covering
69
+ * it, and so the coverage artifacts of a checkout stay in one findable place.
70
+ */
71
+ export const COVERAGE_RUNS_DIR = ".runs";
72
+ /**
73
+ * Environment variable pinning the reports directory to a caller-chosen path.
74
+ *
75
+ * For the environment where isolation is not needed and a STABLE path is —
76
+ * a CI job that runs one suite and then uploads `coverage/lcov.info`. Such a
77
+ * job is the single writer of its own workspace, so the collision this module
78
+ * prevents cannot arise there, and the caller pinning the path is the caller
79
+ * taking responsibility for that.
80
+ *
81
+ * Honoured verbatim. Vitest resolves a relative value against the project root
82
+ * exactly as it resolves its own default, so both forms work.
83
+ */
84
+ export const COVERAGE_REPORTS_DIR_ENV = "LISA_COVERAGE_REPORTS_DIR";
85
+ /** Bytes of randomness disambiguating two runs started in the same millisecond. */
86
+ const SUFFIX_BYTES = 4;
87
+ /**
88
+ * Builds the relative reports directory for one run.
89
+ *
90
+ * Separated from {@link coverageReportsDirectory} so tests can state the
91
+ * identity rather than mine it out of a memoized process-wide value.
92
+ * @param owner - Process id owning the run
93
+ * @param startedAt - Epoch milliseconds the directory was named
94
+ * @param suffix - Opaque random suffix, free of `-`
95
+ * @returns Root-relative path, POSIX-separated as Vitest's own default is.
96
+ */
97
+ export function coverageRunDirectory(owner, startedAt, suffix) {
98
+ return `coverage/${COVERAGE_RUNS_DIR}/${runRootName(owner, startedAt, suffix)}`;
99
+ }
100
+ /**
101
+ * The path this process's coverage output belongs in.
102
+ *
103
+ * Memoized rather than recomputed. Every stack factory calls this, a project's
104
+ * `vitest.config.ts` may merge several of them, and a run whose scratch and
105
+ * whose reports disagreed about their directory would reproduce the defect
106
+ * inside the fix.
107
+ */
108
+ const pinned = { current: undefined };
109
+ /**
110
+ * Resolves the coverage reports directory for this run.
111
+ * @param environment - Environment to read; defaults to this process's.
112
+ * @returns A value for Vitest's `coverage.reportsDirectory`.
113
+ */
114
+ export function coverageReportsDirectory(environment = env) {
115
+ const override = environment[COVERAGE_REPORTS_DIR_ENV];
116
+ if (override !== undefined && override.trim() !== "")
117
+ return override;
118
+ pinned.current ??= coverageRunDirectory(pid, Date.now(), randomBytes(SUFFIX_BYTES).toString("hex"));
119
+ return pinned.current;
120
+ }
121
+ /**
122
+ * Discards the memoized value.
123
+ *
124
+ * Test-only. Exported because the memo is the one piece of state here, and a
125
+ * suite that could not clear it would have to assert against whichever value
126
+ * an unrelated earlier case happened to allocate.
127
+ */
128
+ export function resetCoverageReportsDirectory() {
129
+ pinned.current = undefined;
130
+ }
131
+ //# sourceMappingURL=coverage-reports-directory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-reports-directory.js","sourceRoot":"","sources":["../../../src/configs/vitest/coverage-reports-directory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAEzC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE,mFAAmF;AACnF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,KAAa,EACb,SAAiB,EACjB,MAAc;IAEd,OAAO,YAAY,iBAAiB,IAAI,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC;AAClF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,GAAoC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,cAAiC,GAAG;IAEpC,MAAM,QAAQ,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACvD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAEtE,MAAM,CAAC,OAAO,KAAK,oBAAoB,CACrC,GAAG,EACH,IAAI,CAAC,GAAG,EAAE,EACV,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1C,CAAC;IACF,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;AAC7B,CAAC"}
@@ -5,9 +5,9 @@
5
5
  * @module configs/vitest/harper-fabric
6
6
  */
7
7
  import type { ViteUserConfig } from "vitest/config";
8
- import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
8
+ import { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
9
9
  import type { PortableThresholds } from "./base.js";
10
- export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
10
+ export { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
11
11
  export type { PortableThresholds };
12
12
  /**
13
13
  * Options for configuring the Harper/Fabric Vitest config factory.
@@ -1 +1 @@
1
- {"version":3,"file":"harper-fabric.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,yBAAyB;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,kBAEzC,yBAA8B,KAAG,cA2BlC,CAAC"}
1
+ {"version":3,"file":"harper-fabric.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,yBAAyB;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,kBAEzC,yBAA8B,KAAG,cA8BlC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
- export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
1
+ import { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, } from "./base.js";
2
+ export { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
3
3
  /**
4
4
  * Creates a Vitest configuration for Harper/Fabric projects.
5
5
  * @param options - Configuration options
@@ -20,6 +20,9 @@ export const getHarperFabricVitestConfig = ({ thresholds, } = {}) => ({
20
20
  testTimeout: 10000,
21
21
  coverage: {
22
22
  provider: "v8",
23
+ // Per-run, so a sibling run in this checkout cannot delete this
24
+ // run's live scratch. See configs/vitest/coverage-reports-directory.
25
+ reportsDirectory: coverageReportsDirectory(),
23
26
  include: ["src/**/*.ts"],
24
27
  exclude: [
25
28
  ...defaultCoverageExclusions,
@@ -1 +1 @@
1
- {"version":3,"file":"harper-fabric.js","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,UAAU,MACmB,EAAE,EAAkB,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,OAAO,EAAE;gBACP,GAAG,yBAAyB;gBAC5B,cAAc;gBACd,iBAAiB;aAClB;YACD,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"harper-fabric.js","sourceRoot":"","sources":["../../../src/configs/vitest/harper-fabric.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAYF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,UAAU,MACmB,EAAE,EAAkB,EAAE,CAAC,CAAC;IACrD,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;QACnD,OAAO,EAAE,CAAC,GAAG,qBAAqB,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,gEAAgE;YAChE,qEAAqE;YACrE,gBAAgB,EAAE,wBAAwB,EAAE;YAC5C,OAAO,EAAE,CAAC,aAAa,CAAC;YACxB,OAAO,EAAE;gBACP,GAAG,yBAAyB;gBAC5B,cAAc;gBACd,iBAAiB;aAClB;YACD,UAAU,EAAE,aAAa,CACvB,UAAU;gBACR,CAAC,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;gBAChD,CAAC,CAAC,iBAAiB,CACtB;SACF;KACF;CACF,CAAC,CAAC"}
@@ -13,9 +13,9 @@
13
13
  import type { ViteUserConfig } from "vitest/config";
14
14
  /** Vite UserConfig augmented with Vitest's `test` property */
15
15
  type UserConfig = ViteUserConfig;
16
- import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions } from "./base.js";
16
+ import { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions } from "./base.js";
17
17
  import type { PortableThresholds } from "./base.js";
18
- export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
18
+ export { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
19
19
  export type { PortableThresholds };
20
20
  /**
21
21
  * Options for configuring the NestJS Vitest config factory.
@@ -1 +1 @@
1
- {"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAwBD;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,UAoB5B,CAAC"}
1
+ {"version":3,"file":"nestjs.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,8DAA8D;AAC9D,KAAK,UAAU,GAAG,cAAc,CAAC;AAEjC,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAGpD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,mFAAmF;IACnF,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAwBD;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,UAuB5B,CAAC"}
@@ -1,6 +1,6 @@
1
- import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, } from "./base.js";
1
+ import { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, } from "./base.js";
2
2
  // Re-export base utilities for entry-point configs
3
- export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
3
+ export { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, worktreeExclusions, };
4
4
  /**
5
5
  * NestJS-specific patterns excluded from coverage collection.
6
6
  * These are generated or boilerplate files that don't benefit from coverage tracking.
@@ -47,6 +47,9 @@ export const getNestjsVitestConfig = ({ thresholds = defaultThresholds, } = {})
47
47
  testTimeout: 10000,
48
48
  coverage: {
49
49
  provider: "v8",
50
+ // Per-run, so a sibling run in this checkout cannot delete this
51
+ // run's live scratch. See configs/vitest/coverage-reports-directory.
52
+ reportsDirectory: coverageReportsDirectory(),
50
53
  include: ["**/*.ts"],
51
54
  exclude: [...nestjsCoverageExclusions, ...worktreeExclusions()],
52
55
  thresholds: mapThresholds(thresholds),
@@ -1 +1 @@
1
- {"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAInB,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAYF;;;GAGG;AACH,MAAM,wBAAwB,GAAsB;IAClD,GAAG,yBAAyB;IAC5B,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,2BAA2B;IAC3B,sBAAsB;IACtB,eAAe;IACf,YAAY;CACb,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,GAAG,iBAAiB,MACP,EAAE,EAAc,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,cAAc,CAAC;QACzB,OAAO,EAAE,CAAC,GAAG,qBAAqB,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAC5D,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,CAAC,GAAG,wBAAwB,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAC/D,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;SACtC;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"nestjs.js","sourceRoot":"","sources":["../../../src/configs/vitest/nestjs.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AAInB,mDAAmD;AACnD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,GACnB,CAAC;AAYF;;;GAGG;AACH,MAAM,wBAAwB,GAAsB;IAClD,GAAG,yBAAyB;IAC5B,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,2BAA2B;IAC3B,sBAAsB;IACtB,eAAe;IACf,YAAY;CACb,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,GAAG,iBAAiB,MACP,EAAE,EAAc,EAAE,CAAC,CAAC;IAC3C,IAAI,EAAE;QACJ,UAAU,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC;QACpC,WAAW,EAAE,CAAC,GAAG,kBAAkB,EAAE,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAChE,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;QAChD,8EAA8E;QAC9E,UAAU,EAAE,iBAAiB,EAAE;QAC/B,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,MAAM;QACnB,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,CAAC,cAAc,CAAC;QACzB,OAAO,EAAE,CAAC,GAAG,qBAAqB,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAC5D,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,gEAAgE;YAChE,qEAAqE;YACrE,gBAAgB,EAAE,wBAAwB,EAAE;YAC5C,OAAO,EAAE,CAAC,SAAS,CAAC;YACpB,OAAO,EAAE,CAAC,GAAG,wBAAwB,EAAE,GAAG,kBAAkB,EAAE,CAAC;YAC/D,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC;SACtC;KACF;CACF,CAAC,CAAC"}
@@ -8,9 +8,9 @@
8
8
  * @module configs/vitest/phaser
9
9
  */
10
10
  import type { ViteUserConfig } from "vitest/config";
11
- import { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
11
+ import { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles } from "./base.js";
12
12
  import type { PortableThresholds } from "./base.js";
13
- export { coverageGlobalSetup, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
13
+ export { coverageGlobalSetup, coverageReportsDirectory, defaultCoverageExclusions, defaultTestExclusions, defaultThresholds, mapThresholds, mergeThresholds, mergeVitestConfigs, resolveMaxWorkers, scratchGlobalSetup, scratchSetupFiles, };
14
14
  export type { PortableThresholds };
15
15
  /**
16
16
  * Options for configuring the Phaser Vitest config factory.
@@ -1 +1 @@
1
- {"version":3,"file":"phaser.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/phaser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,cA8B5B,CAAC"}
1
+ {"version":3,"file":"phaser.d.ts","sourceRoot":"","sources":["../../../src/configs/vitest/phaser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC;AAEnC;;GAEG;AACH,UAAU,mBAAmB;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,kBAEnC,mBAAwB,KAAG,cAiC5B,CAAC"}