@vibe-validate/cli 0.19.0-rc.7 → 0.19.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.
- package/dist/bin/vibe-validate +47 -25
- package/dist/bin/vibe-validate.d.ts +1 -0
- package/dist/bin/vibe-validate.d.ts.map +1 -1
- package/dist/bin/vibe-validate.js +47 -25
- package/dist/bin/vibe-validate.js.map +1 -1
- package/dist/bin/vv +47 -25
- package/dist/bin.js +2 -2
- package/dist/bin.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +11 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/generate-workflow.d.ts +10 -10
- package/dist/commands/generate-workflow.d.ts.map +1 -1
- package/dist/commands/generate-workflow.js +114 -294
- package/dist/commands/generate-workflow.js.map +1 -1
- package/dist/commands/pre-commit.d.ts.map +1 -1
- package/dist/commands/pre-commit.js +28 -11
- package/dist/commands/pre-commit.js.map +1 -1
- package/dist/commands/run.js +1 -1
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +46 -12
- package/dist/commands/validate.js.map +1 -1
- package/dist/services/extraction-mode-detector.d.ts.map +1 -1
- package/dist/services/extraction-mode-detector.js +29 -25
- package/dist/services/extraction-mode-detector.js.map +1 -1
- package/dist/utils/flakiness-detector.d.ts +17 -0
- package/dist/utils/flakiness-detector.d.ts.map +1 -0
- package/dist/utils/flakiness-detector.js +87 -0
- package/dist/utils/flakiness-detector.js.map +1 -0
- package/dist/utils/logger.d.ts +29 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +47 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/validate-workflow.d.ts +4 -0
- package/dist/utils/validate-workflow.d.ts.map +1 -1
- package/dist/utils/validate-workflow.js +76 -34
- package/dist/utils/validate-workflow.js.map +1 -1
- package/dist/utils/validation-lock-wrapper.d.ts +3 -0
- package/dist/utils/validation-lock-wrapper.d.ts.map +1 -1
- package/dist/utils/validation-lock-wrapper.js +18 -4
- package/dist/utils/validation-lock-wrapper.js.map +1 -1
- package/package.json +7 -7
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { VibeValidateConfig } from '@vibe-validate/config';
|
|
8
8
|
import type { ValidationResult } from '@vibe-validate/core';
|
|
9
|
+
import { type TreeHashResult } from '@vibe-validate/git';
|
|
9
10
|
import type { AgentContext } from './context-detector.js';
|
|
10
11
|
export interface ValidateWorkflowOptions {
|
|
11
12
|
force?: boolean;
|
|
@@ -13,7 +14,10 @@ export interface ValidateWorkflowOptions {
|
|
|
13
14
|
yaml?: boolean;
|
|
14
15
|
check?: boolean;
|
|
15
16
|
debug?: boolean;
|
|
17
|
+
retryFailed?: boolean;
|
|
16
18
|
context: AgentContext;
|
|
19
|
+
/** Pre-computed tree hash from lock wrapper (avoids redundant computation) */
|
|
20
|
+
treeHashResult?: TreeHashResult;
|
|
17
21
|
}
|
|
18
22
|
/**
|
|
19
23
|
* Execute validation workflow with caching, history recording, and output formatting.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-workflow.d.ts","sourceRoot":"","sources":["../../src/utils/validate-workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-workflow.d.ts","sourceRoot":"","sources":["../../src/utils/validate-workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAa5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAwOD;;;;;;;;;GASG;AAEH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CA2M3B"}
|
|
@@ -6,12 +6,14 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { runValidation } from '@vibe-validate/core';
|
|
8
8
|
import { getGitTreeHash, getRepositoryRoot } from '@vibe-validate/git';
|
|
9
|
-
import { recordValidationHistory, checkWorktreeStability, checkHistoryHealth, findCachedValidation, } from '@vibe-validate/history';
|
|
9
|
+
import { recordValidationHistory, checkWorktreeStability, checkHistoryHealth, findCachedValidation, readHistoryNote, } from '@vibe-validate/history';
|
|
10
10
|
import { runDependencyCheck } from '@vibe-validate/utils';
|
|
11
11
|
import chalk from 'chalk';
|
|
12
12
|
import { stringify as yamlStringify } from 'yaml';
|
|
13
13
|
import { displayCachedResult } from './display-cached-result.js';
|
|
14
|
+
import { detectFlakiness } from './flakiness-detector.js';
|
|
14
15
|
import { formatWorktreeDisplay } from './format-worktree.js';
|
|
16
|
+
import { createPerfTimer } from './logger.js';
|
|
15
17
|
import { createRunnerConfig } from './runner-adapter.js';
|
|
16
18
|
import { outputYamlResult } from './yaml-output.js';
|
|
17
19
|
/**
|
|
@@ -40,22 +42,6 @@ function shouldRunDependencyCheck(config, isPreCommit) {
|
|
|
40
42
|
return false; // Never run
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
|
-
/**
|
|
44
|
-
* Display dependency check skip reason
|
|
45
|
-
*
|
|
46
|
-
* @param linkedPackages - List of linked packages (if npm link detected)
|
|
47
|
-
* @internal
|
|
48
|
-
*/
|
|
49
|
-
function displayNpmLinkSkipMessage(linkedPackages) {
|
|
50
|
-
console.log(chalk.yellow('⚠️ Dependency lock check skipped (npm link detected)'));
|
|
51
|
-
if (linkedPackages.length > 0) {
|
|
52
|
-
console.log(chalk.gray(' Linked packages:'));
|
|
53
|
-
for (const pkg of linkedPackages) {
|
|
54
|
-
console.log(chalk.gray(` - ${pkg}`));
|
|
55
|
-
}
|
|
56
|
-
console.log(chalk.gray(' To restore normal mode: npm unlink <package> && npm install'));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
45
|
/**
|
|
60
46
|
* Display dependency check failure error
|
|
61
47
|
*
|
|
@@ -111,10 +97,7 @@ async function runDependencyLockCheck(config, verbose) {
|
|
|
111
97
|
};
|
|
112
98
|
}
|
|
113
99
|
// Handle skip
|
|
114
|
-
if (depCheckResult.skipped && depCheckResult.skipReason === '
|
|
115
|
-
displayNpmLinkSkipMessage(depCheckResult.linkedPackages ?? []);
|
|
116
|
-
}
|
|
117
|
-
else if (depCheckResult.skipped && depCheckResult.skipReason === 'env-var') {
|
|
100
|
+
if (depCheckResult.skipped && depCheckResult.skipReason === 'env-var') {
|
|
118
101
|
console.log(chalk.yellow('⚠️ Dependency lock check skipped (VV_SKIP_DEPENDENCY_CHECK set)'));
|
|
119
102
|
}
|
|
120
103
|
return null;
|
|
@@ -157,21 +140,25 @@ async function checkCache(treeHashResult) {
|
|
|
157
140
|
* @internal
|
|
158
141
|
*/
|
|
159
142
|
async function recordHistory(treeHashResultBefore, result, verbose) {
|
|
143
|
+
const treeHashShort = treeHashResultBefore.hash.slice(0, 12);
|
|
160
144
|
try {
|
|
161
145
|
// Check if worktree changed during validation
|
|
162
146
|
const stability = await checkWorktreeStability(treeHashResultBefore.hash);
|
|
147
|
+
if (verbose) {
|
|
148
|
+
console.log(chalk.gray(`\n📝 Recording history for tree ${treeHashShort} (stable=${stability.stable})`));
|
|
149
|
+
}
|
|
163
150
|
if (stability.stable) {
|
|
164
151
|
// Record to git notes
|
|
165
152
|
const recordResult = await recordValidationHistory(treeHashResultBefore, result);
|
|
166
153
|
if (recordResult.recorded) {
|
|
167
154
|
if (verbose) {
|
|
168
|
-
console.log(chalk.gray(
|
|
155
|
+
console.log(chalk.gray(` ✓ History recorded (tree: ${treeHashShort})`));
|
|
169
156
|
}
|
|
170
157
|
}
|
|
171
158
|
else {
|
|
172
159
|
// Always warn on stderr when history recording fails (not just in verbose mode)
|
|
173
160
|
console.error(chalk.yellow(`⚠️ History recording failed: ${recordResult.reason ?? 'Unknown reason'}`));
|
|
174
|
-
console.error(chalk.gray(` Tree hash: ${
|
|
161
|
+
console.error(chalk.gray(` Tree hash: ${treeHashShort}`));
|
|
175
162
|
}
|
|
176
163
|
}
|
|
177
164
|
else {
|
|
@@ -182,11 +169,9 @@ async function recordHistory(treeHashResultBefore, result, verbose) {
|
|
|
182
169
|
}
|
|
183
170
|
}
|
|
184
171
|
catch (error) {
|
|
185
|
-
//
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
console.warn(chalk.yellow(`⚠️ History recording error: ${errorMessage}`));
|
|
189
|
-
}
|
|
172
|
+
// Don't block validation, but always log the error so failures are visible
|
|
173
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
174
|
+
console.error(chalk.yellow(`⚠️ History recording error: ${errorMessage}`));
|
|
190
175
|
}
|
|
191
176
|
}
|
|
192
177
|
/**
|
|
@@ -239,6 +224,7 @@ function displayFailureInfo(result, config) {
|
|
|
239
224
|
*/
|
|
240
225
|
// eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 27 acceptable for workflow orchestration (down from 81) - coordinates caching, validation, history recording, and output formatting
|
|
241
226
|
export async function runValidateWorkflow(config, options) {
|
|
227
|
+
const timer = createPerfTimer('runValidateWorkflow');
|
|
242
228
|
try {
|
|
243
229
|
// If --check flag is used, only check validation state without running
|
|
244
230
|
if (options.check) {
|
|
@@ -262,7 +248,7 @@ export async function runValidateWorkflow(config, options) {
|
|
|
262
248
|
let treeHashResultBefore = null;
|
|
263
249
|
let treeHashBefore = null;
|
|
264
250
|
try {
|
|
265
|
-
treeHashResultBefore = await getGitTreeHash();
|
|
251
|
+
treeHashResultBefore = options.treeHashResult ?? await getGitTreeHash();
|
|
266
252
|
treeHashBefore = treeHashResultBefore.hash;
|
|
267
253
|
}
|
|
268
254
|
catch (error) {
|
|
@@ -271,6 +257,7 @@ export async function runValidateWorkflow(config, options) {
|
|
|
271
257
|
console.warn(chalk.yellow(`⚠️ Could not get git tree hash - history recording disabled: ${errorMsg}`));
|
|
272
258
|
}
|
|
273
259
|
}
|
|
260
|
+
timer.markWithThreshold('getGitTreeHash', 2000);
|
|
274
261
|
// Check cache: if validation already passed for this tree hash, skip re-running
|
|
275
262
|
// Skip cache if --force flag is set OR VV_FORCE_EXECUTION env var is set
|
|
276
263
|
const forceExecution = (options.force ?? false) || process.env.VV_FORCE_EXECUTION === '1';
|
|
@@ -279,10 +266,44 @@ export async function runValidateWorkflow(config, options) {
|
|
|
279
266
|
if (treeHashResultBefore && !forceExecution) {
|
|
280
267
|
const cached = await checkCache(treeHashResultBefore);
|
|
281
268
|
if (cached) {
|
|
282
|
-
|
|
283
|
-
|
|
269
|
+
// When --retry-failed is set, don't use cached failures — let retry logic handle them
|
|
270
|
+
if (options.retryFailed && !cached.result.passed) {
|
|
271
|
+
// Skip cache — retry logic below will re-use this failed run as previousRun
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
result = cached.result;
|
|
275
|
+
cachedRun = cached.run;
|
|
276
|
+
}
|
|
284
277
|
}
|
|
285
278
|
}
|
|
279
|
+
timer.mark('cache check');
|
|
280
|
+
// Load previous validation for --retry-failed functionality
|
|
281
|
+
let previousRunForRetry;
|
|
282
|
+
if (options.retryFailed && treeHashResultBefore && !forceExecution && !result) {
|
|
283
|
+
try {
|
|
284
|
+
const previousRun = await findCachedValidation(treeHashResultBefore);
|
|
285
|
+
if (!previousRun) {
|
|
286
|
+
// No previous validation found
|
|
287
|
+
console.error(chalk.yellow(`No failed validation found for tree ${treeHashResultBefore.hash.slice(0, 12)}. Running full validation.`));
|
|
288
|
+
}
|
|
289
|
+
else if (previousRun.passed) {
|
|
290
|
+
// Previous validation passed - can't retry failures if there were none
|
|
291
|
+
console.error(chalk.yellow(`Previous validation passed for tree ${treeHashResultBefore.hash.slice(0, 12)}. Running full validation.`));
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
// Previous validation failed - use it for retry
|
|
295
|
+
previousRunForRetry = previousRun;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
// Silent failure - continue with full validation
|
|
300
|
+
if (verbose) {
|
|
301
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
302
|
+
console.warn(chalk.yellow(`⚠️ Could not load previous validation: ${errorMsg}`));
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
timer.mark('retry check');
|
|
286
307
|
if (!result) {
|
|
287
308
|
// Display tree hash before running validation
|
|
288
309
|
if (treeHashResultBefore) {
|
|
@@ -306,16 +327,21 @@ export async function runValidateWorkflow(config, options) {
|
|
|
306
327
|
if (options.force) {
|
|
307
328
|
process.env.VV_FORCE_EXECUTION = '1';
|
|
308
329
|
}
|
|
309
|
-
// Run validation
|
|
310
|
-
result = await runValidation(
|
|
330
|
+
// Run validation (with optional previousRun for retry-failed)
|
|
331
|
+
result = await runValidation({
|
|
332
|
+
...runnerConfig,
|
|
333
|
+
previousRun: previousRunForRetry,
|
|
334
|
+
});
|
|
311
335
|
// Record validation history (if in git repo)
|
|
312
336
|
if (treeHashResultBefore) {
|
|
313
337
|
await recordHistory(treeHashResultBefore, result, verbose);
|
|
314
338
|
}
|
|
315
339
|
}
|
|
316
|
-
// Proactive health check (
|
|
340
|
+
// Proactive health check (now O(1) — 2 git spawns max)
|
|
341
|
+
timer.mark('validation done');
|
|
317
342
|
try {
|
|
318
343
|
const health = await checkHistoryHealth();
|
|
344
|
+
timer.markWithThreshold('checkHistoryHealth', 500);
|
|
319
345
|
if (health.shouldWarn) {
|
|
320
346
|
console.log('');
|
|
321
347
|
console.log(chalk.blue(health.warningMessage));
|
|
@@ -324,6 +350,21 @@ export async function runValidateWorkflow(config, options) {
|
|
|
324
350
|
catch {
|
|
325
351
|
// Silent failure - don't block validation
|
|
326
352
|
}
|
|
353
|
+
// Check for flakiness (only in human-readable mode and when validation passed)
|
|
354
|
+
if (!yaml && result.passed && treeHashBefore) {
|
|
355
|
+
try {
|
|
356
|
+
const note = await readHistoryNote(treeHashBefore);
|
|
357
|
+
if (note) {
|
|
358
|
+
const flakinessWarning = detectFlakiness(note, result);
|
|
359
|
+
if (flakinessWarning) {
|
|
360
|
+
console.warn(chalk.yellow(flakinessWarning));
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
catch {
|
|
365
|
+
// Silent failure - don't block validation
|
|
366
|
+
}
|
|
367
|
+
}
|
|
327
368
|
// Display result (cached or fresh)
|
|
328
369
|
if (yaml) {
|
|
329
370
|
// YAML mode: output structured result to stdout
|
|
@@ -355,6 +396,7 @@ export async function runValidateWorkflow(config, options) {
|
|
|
355
396
|
process.stderr.write('---\n');
|
|
356
397
|
}
|
|
357
398
|
}
|
|
399
|
+
timer.done();
|
|
358
400
|
return result;
|
|
359
401
|
}
|
|
360
402
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-workflow.js","sourceRoot":"","sources":["../../src/utils/validate-workflow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-workflow.js","sourceRoot":"","sources":["../../src/utils/validate-workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* lock management across commands (validate, pre-commit, etc.).
|
|
7
7
|
*/
|
|
8
8
|
import type { VibeValidateConfig } from '@vibe-validate/config';
|
|
9
|
+
import { type TreeHashResult } from '@vibe-validate/git';
|
|
9
10
|
import type { AgentContext } from './context-detector.js';
|
|
10
11
|
/**
|
|
11
12
|
* Options for validation lock wrapper
|
|
@@ -30,6 +31,8 @@ export interface ValidationLockContext {
|
|
|
30
31
|
configDir: string;
|
|
31
32
|
/** Agent context (Claude Code, CI, etc.) */
|
|
32
33
|
context: AgentContext;
|
|
34
|
+
/** Pre-computed tree hash (avoids redundant computation in workflow) */
|
|
35
|
+
treeHashResult?: TreeHashResult;
|
|
33
36
|
}
|
|
34
37
|
/**
|
|
35
38
|
* Execute a callback with validation lock management
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-lock-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/validation-lock-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation-lock-wrapper.d.ts","sourceRoot":"","sources":["../../src/utils/validation-lock-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAW1D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2BAA2B;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,OAAO,EAAE,YAAY,CAAC;IACtB,wEAAwE;IACxE,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAoDD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,OAAO,CAAC,CAAC,CAAC,GACpD,OAAO,CAAC,CAAC,CAAC,CAqIZ"}
|
|
@@ -11,6 +11,7 @@ import chalk from 'chalk';
|
|
|
11
11
|
import { displayConfigErrors } from './config-error-reporter.js';
|
|
12
12
|
import { loadConfigWithErrors, loadConfigWithDir } from './config-loader.js';
|
|
13
13
|
import { detectContext } from './context-detector.js';
|
|
14
|
+
import { createPerfTimer } from './logger.js';
|
|
14
15
|
import { acquireLock, checkLock, waitForLock, } from './pid-lock.js';
|
|
15
16
|
import { detectProjectId } from './project-id.js';
|
|
16
17
|
/**
|
|
@@ -83,10 +84,12 @@ function displayExistingLockInfo(existingLock, currentTreeHash, yamlMode) {
|
|
|
83
84
|
// eslint-disable-next-line sonarjs/cognitive-complexity -- Complexity 26 acceptable for validation lock wrapper (orchestrates config, context, locking, wait, and acquire logic)
|
|
84
85
|
export async function withValidationLock(options, callback) {
|
|
85
86
|
let lockRelease = null;
|
|
87
|
+
const timer = createPerfTimer('withValidationLock');
|
|
86
88
|
try {
|
|
87
89
|
// Load configuration first (needed for lock config)
|
|
88
90
|
// Use loadConfigWithDir to get config directory for locking
|
|
89
91
|
const configResult = await loadConfigWithDir();
|
|
92
|
+
timer.mark('config loaded');
|
|
90
93
|
if (!configResult) {
|
|
91
94
|
// Get detailed error information to distinguish between missing file and validation errors
|
|
92
95
|
const configWithErrors = await loadConfigWithErrors();
|
|
@@ -107,6 +110,7 @@ export async function withValidationLock(options, callback) {
|
|
|
107
110
|
const { config, configDir } = configResult;
|
|
108
111
|
// Detect context (Claude Code, CI, etc.)
|
|
109
112
|
const context = detectContext();
|
|
113
|
+
timer.mark('context detected');
|
|
110
114
|
// Determine lock options from config
|
|
111
115
|
const lockConfig = config.locking ?? { enabled: true, concurrencyScope: 'directory' };
|
|
112
116
|
// Determine if locking should be enabled
|
|
@@ -134,7 +138,10 @@ export async function withValidationLock(options, callback) {
|
|
|
134
138
|
lockOptions = { scope: 'directory' };
|
|
135
139
|
}
|
|
136
140
|
// Default behavior: wait is enabled (wait for running validation)
|
|
137
|
-
// Users can opt out with waitEnabled: false for background hooks
|
|
141
|
+
// Users can opt out with waitEnabled: false (--no-wait) for background hooks
|
|
142
|
+
// Waiting is independent of locking:
|
|
143
|
+
// - You can wait for a running validation without acquiring a lock yourself (e.g., --check)
|
|
144
|
+
// - You can skip waiting even if you would acquire a lock (e.g., --no-wait for hooks)
|
|
138
145
|
const shouldWait = options.waitEnabled !== false;
|
|
139
146
|
const yamlMode = options.yaml ?? false;
|
|
140
147
|
// Handle wait mode (default: wait for running validation to complete)
|
|
@@ -150,16 +157,20 @@ export async function withValidationLock(options, callback) {
|
|
|
150
157
|
console.log(` Timeout: ${waitTimeout}s`);
|
|
151
158
|
}
|
|
152
159
|
const waitResult = await waitForLock(configDir, waitTimeout, 1000, lockOptions);
|
|
160
|
+
timer.markWithThreshold('waitForLock', 5000);
|
|
153
161
|
displayWaitResult(waitResult.timedOut, yamlMode);
|
|
154
162
|
}
|
|
155
163
|
// If no lock exists, proceed normally
|
|
156
164
|
}
|
|
157
165
|
// Handle lock mode (single-instance execution)
|
|
166
|
+
let treeHashResult;
|
|
158
167
|
if (shouldLock) {
|
|
159
168
|
// Use config directory for lock (not process.cwd()) - ensures same lock regardless of invocation directory
|
|
160
|
-
|
|
169
|
+
treeHashResult = await getGitTreeHash();
|
|
170
|
+
timer.markWithThreshold('getGitTreeHash (lock)', 2000);
|
|
161
171
|
const treeHash = treeHashResult.hash;
|
|
162
172
|
const lockResult = await acquireLock(configDir, treeHash, lockOptions);
|
|
173
|
+
timer.mark('acquireLock');
|
|
163
174
|
if (!lockResult.acquired && lockResult.existingLock) {
|
|
164
175
|
// Another validation is already running
|
|
165
176
|
// If --no-wait specified, exit immediately (for background hooks)
|
|
@@ -175,14 +186,17 @@ export async function withValidationLock(options, callback) {
|
|
|
175
186
|
lockRelease = lockResult.release;
|
|
176
187
|
}
|
|
177
188
|
}
|
|
178
|
-
// Execute callback with context
|
|
179
|
-
|
|
189
|
+
// Execute callback with context (pass pre-computed tree hash to avoid redundant computation)
|
|
190
|
+
const result = await callback({ config, configDir, context, treeHashResult });
|
|
191
|
+
timer.mark('callback done');
|
|
192
|
+
return result;
|
|
180
193
|
}
|
|
181
194
|
finally {
|
|
182
195
|
// Always release lock when done
|
|
183
196
|
if (lockRelease) {
|
|
184
197
|
await lockRelease();
|
|
185
198
|
}
|
|
199
|
+
timer.done();
|
|
186
200
|
}
|
|
187
201
|
}
|
|
188
202
|
//# sourceMappingURL=validation-lock-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-lock-wrapper.js","sourceRoot":"","sources":["../../src/utils/validation-lock-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"validation-lock-wrapper.js","sourceRoot":"","sources":["../../src/utils/validation-lock-wrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-validate/cli",
|
|
3
|
-
"version": "0.19.0
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Command-line interface for vibe-validate validation framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -64,11 +64,11 @@
|
|
|
64
64
|
"yaml": "^2.8.2",
|
|
65
65
|
"zod": "^3.25.76",
|
|
66
66
|
"zod-to-json-schema": "^3.25.0",
|
|
67
|
-
"@vibe-validate/
|
|
68
|
-
"@vibe-validate/
|
|
69
|
-
"@vibe-validate/extractors": "0.19.0
|
|
70
|
-
"@vibe-validate/
|
|
71
|
-
"@vibe-validate/
|
|
67
|
+
"@vibe-validate/core": "0.19.0",
|
|
68
|
+
"@vibe-validate/config": "0.19.0",
|
|
69
|
+
"@vibe-validate/extractors": "0.19.0",
|
|
70
|
+
"@vibe-validate/history": "0.19.0",
|
|
71
|
+
"@vibe-validate/git": "0.19.0"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@types/node": "^20.19.26",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"@types/semver": "^7.7.1",
|
|
78
78
|
"typescript": "^5.9.3",
|
|
79
79
|
"vitest": "^2.1.9",
|
|
80
|
-
"@vibe-validate/utils": "0.19.0
|
|
80
|
+
"@vibe-validate/utils": "0.19.0"
|
|
81
81
|
},
|
|
82
82
|
"scripts": {
|
|
83
83
|
"build": "tsc && node scripts/prepare-bin.js && node dist/scripts/generate-watch-pr-schema.js && node dist/scripts/generate-run-result-schema.js",
|