lacuna-cli 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -21
- package/dist/agent/fix-loop.d.ts +5 -0
- package/dist/agent/fix-loop.d.ts.map +1 -1
- package/dist/agent/fix-loop.js +342 -35
- package/dist/agent/fix-loop.js.map +1 -1
- package/dist/agent/generator.d.ts +4 -1
- package/dist/agent/generator.d.ts.map +1 -1
- package/dist/agent/generator.js +42 -3
- package/dist/agent/generator.js.map +1 -1
- package/dist/agent/loop.d.ts +8 -0
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +26 -9
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/prompts.d.ts +8 -0
- package/dist/agent/prompts.d.ts.map +1 -1
- package/dist/agent/prompts.js +395 -67
- package/dist/agent/prompts.js.map +1 -1
- package/dist/commands/fix.d.ts +2 -0
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +31 -2
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +245 -34
- package/dist/commands/init.js.map +1 -1
- package/dist/lib/config.d.ts +8 -8
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +8 -6
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/coverage/gaps.d.ts +2 -2
- package/dist/lib/coverage/gaps.d.ts.map +1 -1
- package/dist/lib/coverage/gaps.js +4 -4
- package/dist/lib/coverage/gaps.js.map +1 -1
- package/dist/lib/detector.d.ts +3 -2
- package/dist/lib/detector.d.ts.map +1 -1
- package/dist/lib/detector.js +138 -0
- package/dist/lib/detector.js.map +1 -1
- package/dist/lib/providers/anthropic.d.ts.map +1 -1
- package/dist/lib/providers/anthropic.js +26 -3
- package/dist/lib/providers/anthropic.js.map +1 -1
- package/dist/lib/providers/openai-compatible.d.ts +1 -1
- package/dist/lib/providers/openai-compatible.d.ts.map +1 -1
- package/dist/lib/providers/openai-compatible.js +17 -1
- package/dist/lib/providers/openai-compatible.js.map +1 -1
- package/dist/lib/skeleton.d.ts +4 -0
- package/dist/lib/skeleton.d.ts.map +1 -1
- package/dist/lib/skeleton.js +220 -0
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/validate.d.ts +1 -0
- package/dist/lib/validate.d.ts.map +1 -1
- package/dist/lib/validate.js +132 -0
- package/dist/lib/validate.js.map +1 -1
- package/dist/lib/worker-display.d.ts +3 -0
- package/dist/lib/worker-display.d.ts.map +1 -1
- package/dist/lib/worker-display.js +19 -4
- package/dist/lib/worker-display.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/report-upload.d.ts +0 -3
- package/dist/lib/report-upload.d.ts.map +0 -1
- package/dist/lib/report-upload.js +0 -15
- package/dist/lib/report-upload.js.map +0 -1
- package/oclif.manifest.json +0 -295
package/dist/agent/fix-loop.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { readFile, writeFile, mkdir, unlink } from 'fs/promises';
|
|
1
|
+
import { readFile, writeFile, mkdir, unlink, readdir } from 'fs/promises';
|
|
2
2
|
import { join, dirname, basename, extname } from 'path';
|
|
3
3
|
import { access, stat } from 'fs/promises';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
|
-
import { fileTestCommand } from '../lib/detector.js';
|
|
5
|
+
import { fileTestCommand, multiFileTestCommand } from '../lib/detector.js';
|
|
6
6
|
import { runCommand } from '../lib/runner.js';
|
|
7
7
|
import { startCoverageSpinner } from '../lib/coverage-spinner.js';
|
|
8
8
|
import { WorkerDisplay } from '../lib/worker-display.js';
|
|
9
9
|
import { buildFixFileContext, computeRelativeImport, collectTypeDefinitions, collectLocalImportPaths, detectReactMajorVersion } from './context.js';
|
|
10
|
-
import { TestGenerator, TruncatedOutputError, OscillationError, TRUNCATION_RETRY_MESSAGE } from './generator.js';
|
|
10
|
+
import { TestGenerator, TruncatedOutputError, OscillationError, TRUNCATION_RETRY_MESSAGE, OSCILLATION_ESCAPE_MESSAGE } from './generator.js';
|
|
11
|
+
import { processGap } from './loop.js';
|
|
11
12
|
import { ProjectMemory } from './project-memory.js';
|
|
12
13
|
import { getActiveTips, createTipRotator, formatTip } from '../lib/tips.js';
|
|
13
14
|
import { typeCheckFile } from '../lib/typecheck.js';
|
|
14
|
-
import { hasTestFunctions, enrichNoTestsError, isZeroTestsOutput, parsePassCount, buildStructureBrokenMessage, buildRegressionMessage, sanitizeMocksContent, stripLeadingProse, mergeMocksContent } from '../lib/validate.js';
|
|
15
|
+
import { hasTestFunctions, enrichNoTestsError, isZeroTestsOutput, parsePassCount, buildStructureBrokenMessage, buildRegressionMessage, sanitizeMocksContent, stripLeadingProse, mergeMocksContent, deduplicateViMocks } from '../lib/validate.js';
|
|
15
16
|
import { extractTestFailure } from '../lib/extract-error.js';
|
|
16
17
|
import { StreamingFileViewer } from '../lib/streaming-viewer.js';
|
|
17
18
|
// ─── Failing-files cache ──────────────────────────────────────────────────────
|
|
@@ -46,42 +47,84 @@ async function clearFixCache(cwd) {
|
|
|
46
47
|
catch { /* already gone — fine */ }
|
|
47
48
|
}
|
|
48
49
|
// ─── Parse failing test files from runner output ──────────────────────────────
|
|
49
|
-
const TEST_FILE_RE = /[\w
|
|
50
|
+
const TEST_FILE_RE = /[\w./\\@\[\]-]+\.(?:test|spec)\.(?:tsx|mts|ts|jsx|js)/;
|
|
51
|
+
function stripAnsi(s) {
|
|
52
|
+
// Strip all CSI sequences (ESC [ ... letter), OSC sequences, carriage returns
|
|
53
|
+
return s.replace(/\x1B\[[0-9;]*[A-Za-z]/g, '').replace(/\x1B\][^\x1B]*/g, '').replace(/\r/g, '');
|
|
54
|
+
}
|
|
50
55
|
function parseFailingTestFiles(output, runner) {
|
|
51
|
-
const files = new Set();
|
|
52
56
|
const lines = output.split('\n');
|
|
57
|
+
// Two separate sets — cross/tick pattern (per-file summary) vs FAIL pattern (per-test details)
|
|
58
|
+
const crossFiles = new Set();
|
|
59
|
+
const failFiles = new Set();
|
|
53
60
|
for (const line of lines) {
|
|
54
|
-
const clean = line
|
|
55
|
-
// Vitest: cross character followed by file path (covers multiple cross symbols across versions)
|
|
61
|
+
const clean = stripAnsi(line).trim();
|
|
56
62
|
if (runner === 'vitest' || runner === 'unknown') {
|
|
57
63
|
const m = clean.match(new RegExp(`^[×✗✕✖✘❌]\\s+(${TEST_FILE_RE.source})`));
|
|
58
64
|
if (m) {
|
|
59
|
-
|
|
65
|
+
crossFiles.add(m[1]);
|
|
60
66
|
continue;
|
|
61
67
|
}
|
|
62
68
|
}
|
|
63
|
-
// "FAIL <path>" — used by Jest and some Vitest reporters/configurations
|
|
64
69
|
if (runner === 'jest' || runner === 'vitest' || runner === 'unknown') {
|
|
65
70
|
const m = clean.match(new RegExp(`^FAIL\\s+(${TEST_FILE_RE.source})`));
|
|
66
71
|
if (m) {
|
|
67
|
-
|
|
68
|
-
continue;
|
|
72
|
+
failFiles.add(m[1]);
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
75
|
}
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
// Parse the expected failing file count from the runner summary line
|
|
77
|
+
let expectedCount = null;
|
|
78
|
+
for (const line of lines) {
|
|
79
|
+
const clean = stripAnsi(line).trim();
|
|
80
|
+
const mv = clean.match(/Test Files\s+(\d+)\s+failed/);
|
|
81
|
+
if (mv) {
|
|
82
|
+
expectedCount = parseInt(mv[1], 10);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
const mj = clean.match(/Test Suites:\s+(\d+)\s+failed/);
|
|
86
|
+
if (mj) {
|
|
87
|
+
expectedCount = parseInt(mj[1], 10);
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const combined = new Set([...crossFiles, ...failFiles]);
|
|
92
|
+
if (expectedCount !== null && combined.size > expectedCount) {
|
|
93
|
+
// Over-detected: prune false positives by preferring files confirmed by both patterns,
|
|
94
|
+
// then FAIL-only (strong signal — comes from the detailed failures section),
|
|
95
|
+
// then cross-only last (more likely to include false positives).
|
|
96
|
+
const pruned = new Set();
|
|
97
|
+
for (const f of crossFiles) {
|
|
98
|
+
if (failFiles.has(f))
|
|
99
|
+
pruned.add(f);
|
|
100
|
+
}
|
|
101
|
+
for (const f of failFiles) {
|
|
102
|
+
if (pruned.size < expectedCount)
|
|
103
|
+
pruned.add(f);
|
|
104
|
+
}
|
|
105
|
+
for (const f of crossFiles) {
|
|
106
|
+
if (pruned.size < expectedCount)
|
|
107
|
+
pruned.add(f);
|
|
108
|
+
}
|
|
109
|
+
return [...pruned];
|
|
110
|
+
}
|
|
111
|
+
// Supplement with stack traces only when primary patterns under-detected
|
|
112
|
+
const needsSupplement = expectedCount !== null ? combined.size < expectedCount : combined.size === 0;
|
|
113
|
+
if (needsSupplement) {
|
|
114
|
+
let inTrace = false;
|
|
76
115
|
for (const line of lines) {
|
|
77
|
-
const clean = line
|
|
78
|
-
|
|
116
|
+
const clean = stripAnsi(line).trim();
|
|
117
|
+
if (!clean || clean.startsWith('●') || clean.startsWith('FAIL') || /^[×✗✕✖✘❌]/.test(clean)) {
|
|
118
|
+
inTrace = false;
|
|
119
|
+
}
|
|
79
120
|
const m = clean.match(new RegExp(`\\(?(${TEST_FILE_RE.source}):\\d+`));
|
|
80
|
-
if (m)
|
|
81
|
-
|
|
121
|
+
if (m && !combined.has(m[1]) && !inTrace) {
|
|
122
|
+
combined.add(m[1]);
|
|
123
|
+
inTrace = true;
|
|
124
|
+
}
|
|
82
125
|
}
|
|
83
126
|
}
|
|
84
|
-
return [...
|
|
127
|
+
return [...combined];
|
|
85
128
|
}
|
|
86
129
|
// ─── Find the source file that a test file is testing ────────────────────────
|
|
87
130
|
async function findSourceFile(testFilePath, cwd) {
|
|
@@ -94,7 +137,11 @@ async function findSourceFile(testFilePath, cwd) {
|
|
|
94
137
|
const sourceDir = basename(dir) === '__tests__' ? dirname(dir) : dir;
|
|
95
138
|
const exts = [ext, '.ts', '.tsx', '.js', '.jsx'];
|
|
96
139
|
for (const e of exts) {
|
|
97
|
-
|
|
140
|
+
// If sourceDir is absolute (testFilePath was absolute), use it directly.
|
|
141
|
+
// join(cwd, absoluteDir) doubles the path: /project/home/project/app/... which never exists.
|
|
142
|
+
const candidate = sourceDir.startsWith('/') || sourceDir.startsWith('\\')
|
|
143
|
+
? join(sourceDir, `${sourceBase}${e}`)
|
|
144
|
+
: join(cwd, sourceDir, `${sourceBase}${e}`);
|
|
98
145
|
try {
|
|
99
146
|
await access(candidate);
|
|
100
147
|
return candidate;
|
|
@@ -115,9 +162,9 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
|
|
|
115
162
|
const firstRun = await runCommand(fileTestCommand(env, absTestPath), cwd, 60_000);
|
|
116
163
|
if (firstRun.success) {
|
|
117
164
|
if (!onStatus)
|
|
118
|
-
log(chalk.
|
|
165
|
+
log(chalk.dim(' Already passing — skipping.'));
|
|
119
166
|
onStatus?.({ phase: 'passed', file: shortPath });
|
|
120
|
-
return { success: true };
|
|
167
|
+
return { success: true, skipped: true };
|
|
121
168
|
}
|
|
122
169
|
let errorOutput = extractTestFailure(firstRun.stdout + '\n' + firstRun.stderr);
|
|
123
170
|
const initialErrorOutput = errorOutput;
|
|
@@ -201,6 +248,16 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
|
|
|
201
248
|
continue;
|
|
202
249
|
}
|
|
203
250
|
if (err instanceof OscillationError) {
|
|
251
|
+
if (attempt < config.maxIterations) {
|
|
252
|
+
// Iterations remain — give one escape-hatch attempt with fresh oscillation state
|
|
253
|
+
// and an explicit "completely different approach" message instead of stopping.
|
|
254
|
+
if (!onStatus)
|
|
255
|
+
log(chalk.yellow(`\n ⚠ Agent loop detected — retrying with different strategy...`));
|
|
256
|
+
onStatus?.({ phase: 'retrying', file: shortPath, attempt, max: config.maxIterations });
|
|
257
|
+
generator.resetOscillationState();
|
|
258
|
+
errorOutput = OSCILLATION_ESCAPE_MESSAGE;
|
|
259
|
+
continue;
|
|
260
|
+
}
|
|
204
261
|
if (!onStatus)
|
|
205
262
|
log(chalk.red(`\n ⚠ Agent loop detected — output identical to a previous attempt. Stopping early.`));
|
|
206
263
|
onStatus?.({ phase: 'failed', file: shortPath });
|
|
@@ -255,6 +312,7 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
|
|
|
255
312
|
}
|
|
256
313
|
}
|
|
257
314
|
}
|
|
315
|
+
testFileContent = deduplicateViMocks(testFileContent);
|
|
258
316
|
// Catch empty test files before writing
|
|
259
317
|
if (!hasTestFunctions(testFileContent)) {
|
|
260
318
|
errorOutput =
|
|
@@ -317,13 +375,210 @@ async function fixFile(testFilePath, options, generator, onStatus, projectMemory
|
|
|
317
375
|
error: `Still failing after ${config.maxIterations} attempts. Last error:\n${errorOutput.slice(0, 1500)}`,
|
|
318
376
|
};
|
|
319
377
|
}
|
|
378
|
+
// ─── Polluter detection ───────────────────────────────────────────────────────
|
|
379
|
+
function buildTestFileRegex(pattern) {
|
|
380
|
+
const filename = pattern.split('/').pop() ?? pattern;
|
|
381
|
+
const regexStr = filename
|
|
382
|
+
.replace(/\{([^}]+)\}/g, (_, g) => `(${g.split(',').map((s) => s.trim()).join('|')})`)
|
|
383
|
+
.replace(/\./g, '\\.')
|
|
384
|
+
.replace(/\*+/g, '[^/]+');
|
|
385
|
+
return new RegExp(regexStr + '$');
|
|
386
|
+
}
|
|
387
|
+
async function discoverTestFiles(cwd, env) {
|
|
388
|
+
const testRe = buildTestFileRegex(env.testFilePattern);
|
|
389
|
+
const files = [];
|
|
390
|
+
const skipDirs = new Set(['node_modules', 'dist', '.git', 'coverage', '.nyc_output', '.lacuna']);
|
|
391
|
+
async function walk(dir) {
|
|
392
|
+
const entries = await readdir(dir, { withFileTypes: true }).catch(() => []);
|
|
393
|
+
for (const e of entries) {
|
|
394
|
+
if (e.isDirectory()) {
|
|
395
|
+
if (!skipDirs.has(e.name))
|
|
396
|
+
await walk(join(dir, e.name));
|
|
397
|
+
}
|
|
398
|
+
else if (testRe.test(e.name)) {
|
|
399
|
+
files.push(join(dir, e.name));
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
await walk(cwd);
|
|
404
|
+
return files.sort();
|
|
405
|
+
}
|
|
406
|
+
function victimInFailing(victim, failing, cwd) {
|
|
407
|
+
const rel = (p) => (p.startsWith(cwd + '/') ? p.slice(cwd.length + 1) : p);
|
|
408
|
+
const shortVictim = rel(victim);
|
|
409
|
+
return failing.some(f => {
|
|
410
|
+
const shortF = rel(f);
|
|
411
|
+
return shortF === shortVictim || shortVictim.endsWith(shortF) || shortF.endsWith(shortVictim);
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
async function victimFailsWithSubset(victim, subset, env, cwd) {
|
|
415
|
+
if (subset.length === 0)
|
|
416
|
+
return false;
|
|
417
|
+
const result = await runCommand(multiFileTestCommand(env, [...subset, victim]), cwd, 120_000);
|
|
418
|
+
if (result.success)
|
|
419
|
+
return false;
|
|
420
|
+
const failing = parseFailingTestFiles(result.stdout + '\n' + result.stderr, env.testRunner);
|
|
421
|
+
return victimInFailing(victim, failing, cwd);
|
|
422
|
+
}
|
|
423
|
+
async function bisectPolluter(victim, candidates, env, cwd) {
|
|
424
|
+
if (candidates.length === 0)
|
|
425
|
+
return null;
|
|
426
|
+
if (candidates.length === 1) {
|
|
427
|
+
const fails = await victimFailsWithSubset(victim, candidates, env, cwd);
|
|
428
|
+
return fails ? candidates[0] : null;
|
|
429
|
+
}
|
|
430
|
+
const mid = Math.floor(candidates.length / 2);
|
|
431
|
+
const left = candidates.slice(0, mid);
|
|
432
|
+
const right = candidates.slice(mid);
|
|
433
|
+
if (await victimFailsWithSubset(victim, left, env, cwd))
|
|
434
|
+
return bisectPolluter(victim, left, env, cwd);
|
|
435
|
+
if (await victimFailsWithSubset(victim, right, env, cwd))
|
|
436
|
+
return bisectPolluter(victim, right, env, cwd);
|
|
437
|
+
return null;
|
|
438
|
+
}
|
|
439
|
+
async function findAndFixPolluters(victimFiles, options, projectMemory) {
|
|
440
|
+
const { config, env, cwd, log } = options;
|
|
441
|
+
const allTestFiles = await discoverTestFiles(cwd, env);
|
|
442
|
+
log(chalk.dim(` Discovered ${allTestFiles.length} test files to search.`));
|
|
443
|
+
const generator = new TestGenerator({ config, env });
|
|
444
|
+
let pollutersFixed = 0;
|
|
445
|
+
let victimsRegenerated = 0;
|
|
446
|
+
const seenPolluters = new Set();
|
|
447
|
+
const unresolvedVictims = [];
|
|
448
|
+
for (const victim of victimFiles) {
|
|
449
|
+
const shortVictim = victim.replace(cwd + '/', '');
|
|
450
|
+
log(chalk.dim(`\n Bisecting for: ${chalk.cyan(shortVictim)}`));
|
|
451
|
+
const candidates = allTestFiles.filter(f => f !== victim);
|
|
452
|
+
// Probe: verify the pollution reproduces before spending O(log N) bisect runs.
|
|
453
|
+
// If it doesn't reproduce here, the pollution requires vitest's default multi-worker
|
|
454
|
+
// config to manifest and can't be found by this approach.
|
|
455
|
+
log(chalk.dim(` Probing (${candidates.length} files + victim)...`));
|
|
456
|
+
const reproduced = await victimFailsWithSubset(victim, candidates, env, cwd);
|
|
457
|
+
if (!reproduced) {
|
|
458
|
+
log(chalk.yellow(` Pollution did not reproduce in sequential mode — this is concurrency-based globalThis contamination.`));
|
|
459
|
+
log(chalk.dim(` A vi.spyOn(global, ...) spy from another file is persisting in the shared worker thread.`));
|
|
460
|
+
log(chalk.dim(` Fix: add restoreMocks: true and clearMocks: true to the test: {} block in vitest.config.ts`));
|
|
461
|
+
log(chalk.dim(` Also add beforeEach(() => vi.restoreAllMocks()) to your test setup file.`));
|
|
462
|
+
unresolvedVictims.push(victim);
|
|
463
|
+
continue;
|
|
464
|
+
}
|
|
465
|
+
const polluter = await bisectPolluter(victim, candidates, env, cwd);
|
|
466
|
+
if (!polluter) {
|
|
467
|
+
log(chalk.yellow(` Could not isolate a polluter — file may have an internal spy lifecycle bug.`));
|
|
468
|
+
unresolvedVictims.push(victim);
|
|
469
|
+
continue;
|
|
470
|
+
}
|
|
471
|
+
const shortPolluter = polluter.replace(cwd + '/', '');
|
|
472
|
+
log(` Found polluter: ${chalk.cyan(shortPolluter)}`);
|
|
473
|
+
if (seenPolluters.has(polluter)) {
|
|
474
|
+
log(chalk.dim(` Already processed ${shortPolluter}.`));
|
|
475
|
+
continue;
|
|
476
|
+
}
|
|
477
|
+
seenPolluters.add(polluter);
|
|
478
|
+
// Capture the victim's failure output when run after the polluter
|
|
479
|
+
const errorRun = await runCommand(multiFileTestCommand(env, [polluter, victim]), cwd, 60_000);
|
|
480
|
+
const victimError = extractTestFailure(errorRun.stdout + '\n' + errorRun.stderr);
|
|
481
|
+
const pollutorCode = await readFile(polluter, 'utf-8').catch(() => null);
|
|
482
|
+
const victimCode = await readFile(victim, 'utf-8').catch(() => null);
|
|
483
|
+
if (!pollutorCode || !victimCode) {
|
|
484
|
+
log(chalk.red(` Could not read files — skipping ${shortPolluter}`));
|
|
485
|
+
unresolvedVictims.push(victim);
|
|
486
|
+
continue;
|
|
487
|
+
}
|
|
488
|
+
log(chalk.dim(` Sending to ${config.model} for cleanup...`));
|
|
489
|
+
let fixed;
|
|
490
|
+
try {
|
|
491
|
+
fixed = await generator.fixPollution({
|
|
492
|
+
pollutorFile: shortPolluter,
|
|
493
|
+
pollutorCode,
|
|
494
|
+
victimFile: shortVictim,
|
|
495
|
+
victimCode,
|
|
496
|
+
victimError,
|
|
497
|
+
env,
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
catch (err) {
|
|
501
|
+
log(chalk.red(` AI error: ${err instanceof Error ? err.message : String(err)}`));
|
|
502
|
+
unresolvedVictims.push(victim);
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
await writeFile(polluter, fixed, 'utf-8');
|
|
506
|
+
const verifyRun = await runCommand(multiFileTestCommand(env, [polluter, victim]), cwd, 60_000);
|
|
507
|
+
const verifyFailing = parseFailingTestFiles(verifyRun.stdout + '\n' + verifyRun.stderr, env.testRunner);
|
|
508
|
+
const victimResolved = !victimInFailing(victim, verifyFailing, cwd);
|
|
509
|
+
if (victimResolved) {
|
|
510
|
+
log(chalk.green(` Cleanup applied: ${shortPolluter}`));
|
|
511
|
+
pollutersFixed++;
|
|
512
|
+
}
|
|
513
|
+
else {
|
|
514
|
+
log(chalk.red(` Cleanup did not resolve the victim — restoring ${shortPolluter}`));
|
|
515
|
+
await writeFile(polluter, pollutorCode, 'utf-8').catch(() => { });
|
|
516
|
+
unresolvedVictims.push(victim);
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
// Phase 2: regenerate victims that bisection couldn't resolve.
|
|
520
|
+
// These files pass alone but fail in the suite due to internal bugs
|
|
521
|
+
// (e.g. module-level vi.spyOn, wrong mock structure). A fresh generation
|
|
522
|
+
// produces properly-structured tests with spies inside beforeEach.
|
|
523
|
+
if (unresolvedVictims.length > 0 && options.regenerateOnFailure !== false) {
|
|
524
|
+
log(chalk.bold(`\n Regenerating ${unresolvedVictims.length} victim file(s) that couldn't be resolved by polluter cleanup...`));
|
|
525
|
+
for (const victim of unresolvedVictims) {
|
|
526
|
+
const shortVictim = victim.replace(cwd + '/', '');
|
|
527
|
+
log(chalk.dim(`\n Regenerating: ${chalk.cyan(shortVictim)}`));
|
|
528
|
+
const result = await regenerateFile(victim, options, undefined, projectMemory);
|
|
529
|
+
if (result.success) {
|
|
530
|
+
log(chalk.green(` Regenerated successfully.`));
|
|
531
|
+
victimsRegenerated++;
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
log(chalk.red(` Regeneration failed: ${result.error?.slice(0, 200) ?? 'unknown error'}`));
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
return { pollutersFixed, victimsRegenerated };
|
|
539
|
+
}
|
|
540
|
+
// ─── Regeneration fallback ────────────────────────────────────────────────────
|
|
541
|
+
async function regenerateFile(testFilePath, options, onStatus, projectMemory) {
|
|
542
|
+
const absTestFile = testFilePath.startsWith('/') ? testFilePath : join(options.cwd, testFilePath);
|
|
543
|
+
// Find the source file so processGap gets the right starting point.
|
|
544
|
+
// processGap expects gap.filePath to be the SOURCE file, not the test file.
|
|
545
|
+
const sourceFile = await findSourceFile(absTestFile, options.cwd);
|
|
546
|
+
if (!sourceFile) {
|
|
547
|
+
return { success: false, error: `Could not find source file for ${absTestFile}` };
|
|
548
|
+
}
|
|
549
|
+
// Delete the broken test file before regenerating. If it stays on disk,
|
|
550
|
+
// buildFileContext reads it as existingTestCode and the generate prompt says
|
|
551
|
+
// "preserve all existing tests" — locking the AI into the same broken structure.
|
|
552
|
+
await unlink(absTestFile).catch(() => { });
|
|
553
|
+
const gap = { filePath: sourceFile, uncoveredLines: [], uncoveredFunctions: [] };
|
|
554
|
+
const generator = new TestGenerator({ config: options.config, env: options.env });
|
|
555
|
+
// processGap uses gap.filePath (the source file) as its display identifier, but during
|
|
556
|
+
// regen the worker should stay in 'regenerating' for all intermediate phases and only
|
|
557
|
+
// flip to passed/failed at the end. This prevents the brief flash where 'regenerating'
|
|
558
|
+
// gets overwritten by 'generating' (<80ms) as soon as processGap starts.
|
|
559
|
+
const testShortPath = absTestFile.replace(options.cwd + '/', '');
|
|
560
|
+
const regenOnStatus = onStatus
|
|
561
|
+
? (state) => {
|
|
562
|
+
if (state.phase === 'passed' || state.phase === 'failed') {
|
|
563
|
+
onStatus('file' in state ? { ...state, file: testShortPath } : state);
|
|
564
|
+
}
|
|
565
|
+
else {
|
|
566
|
+
onStatus({ phase: 'regenerating', file: testShortPath });
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
: undefined;
|
|
570
|
+
const result = await processGap(gap, options, generator, true, regenOnStatus, projectMemory);
|
|
571
|
+
return { success: result.success, error: result.error };
|
|
572
|
+
}
|
|
320
573
|
// ─── Worker pool ──────────────────────────────────────────────────────────────
|
|
321
574
|
async function runFixWorkers(testFiles, options, workerCount, projectMemory) {
|
|
322
575
|
const queue = [...testFiles];
|
|
323
576
|
let filesProcessed = 0;
|
|
324
577
|
let filesFixed = 0;
|
|
578
|
+
let filesAlreadyPassing = 0;
|
|
325
579
|
const errors = [];
|
|
326
580
|
const stillFailingFiles = [];
|
|
581
|
+
const victimFiles = [];
|
|
327
582
|
const tips = getActiveTips({
|
|
328
583
|
workers: workerCount,
|
|
329
584
|
targetFile: options.targetFile,
|
|
@@ -344,10 +599,32 @@ async function runFixWorkers(testFiles, options, workerCount, projectMemory) {
|
|
|
344
599
|
if (!file)
|
|
345
600
|
break;
|
|
346
601
|
const onStatus = (state) => display.update(wi, state);
|
|
347
|
-
const
|
|
602
|
+
const absFile = file.startsWith('/') ? file : join(options.cwd, file);
|
|
603
|
+
const workerOptions = { ...options, log: () => { }, verbose: false };
|
|
604
|
+
const result = await fixFile(absFile, workerOptions, generator, onStatus, projectMemory);
|
|
348
605
|
filesProcessed++;
|
|
349
|
-
if (result.success)
|
|
350
|
-
|
|
606
|
+
if (result.success) {
|
|
607
|
+
if (result.skipped) {
|
|
608
|
+
filesAlreadyPassing++;
|
|
609
|
+
victimFiles.push(absFile);
|
|
610
|
+
}
|
|
611
|
+
else
|
|
612
|
+
filesFixed++;
|
|
613
|
+
}
|
|
614
|
+
else if (options.regenerateOnFailure) {
|
|
615
|
+
// Signal 'regenerating' first — this undoes the 'failed' done-count from fixFile
|
|
616
|
+
// so the regen's final phase is the single counted outcome for this file.
|
|
617
|
+
onStatus?.({ phase: 'regenerating', file: absFile.replace(options.cwd + '/', '') });
|
|
618
|
+
const regenResult = await regenerateFile(absFile, workerOptions, onStatus, projectMemory);
|
|
619
|
+
if (regenResult.success) {
|
|
620
|
+
filesFixed++;
|
|
621
|
+
}
|
|
622
|
+
else {
|
|
623
|
+
stillFailingFiles.push(file);
|
|
624
|
+
if (regenResult.error)
|
|
625
|
+
errors.push(regenResult.error);
|
|
626
|
+
}
|
|
627
|
+
}
|
|
351
628
|
else {
|
|
352
629
|
stillFailingFiles.push(file);
|
|
353
630
|
if (result.error)
|
|
@@ -356,7 +633,7 @@ async function runFixWorkers(testFiles, options, workerCount, projectMemory) {
|
|
|
356
633
|
}
|
|
357
634
|
}));
|
|
358
635
|
display.finish();
|
|
359
|
-
return { filesProcessed, filesFixed, errors, stillFailingFiles };
|
|
636
|
+
return { filesProcessed, filesFixed, filesAlreadyPassing, errors, stillFailingFiles, victimFiles };
|
|
360
637
|
}
|
|
361
638
|
// ─── Main entry point ─────────────────────────────────────────────────────────
|
|
362
639
|
export async function runFixLoop(options) {
|
|
@@ -374,7 +651,7 @@ export async function runFixLoop(options) {
|
|
|
374
651
|
spinner.stop();
|
|
375
652
|
if (fileResult.success) {
|
|
376
653
|
log(chalk.green('\n All tests are passing — nothing to fix.'));
|
|
377
|
-
return { filesProcessed: 0, filesFixed: 0, errors: [] };
|
|
654
|
+
return { filesProcessed: 0, filesFixed: 0, filesAlreadyPassing: 0, pollutersFixed: 0, victimsRegenerated: 0, errors: [] };
|
|
378
655
|
}
|
|
379
656
|
failingFiles = [absTarget];
|
|
380
657
|
}
|
|
@@ -396,7 +673,7 @@ export async function runFixLoop(options) {
|
|
|
396
673
|
}
|
|
397
674
|
if (suiteResult.success) {
|
|
398
675
|
log(chalk.green('\n All tests are passing — nothing to fix.'));
|
|
399
|
-
return { filesProcessed: 0, filesFixed: 0, errors: [] };
|
|
676
|
+
return { filesProcessed: 0, filesFixed: 0, filesAlreadyPassing: 0, pollutersFixed: 0, victimsRegenerated: 0, errors: [] };
|
|
400
677
|
}
|
|
401
678
|
failingFiles = parseFailingTestFiles(suiteResult.stdout + suiteResult.stderr, env.testRunner);
|
|
402
679
|
failingFiles = failingFiles.filter((f) => {
|
|
@@ -413,7 +690,7 @@ export async function runFixLoop(options) {
|
|
|
413
690
|
.join('\n');
|
|
414
691
|
if (lastLines)
|
|
415
692
|
log(chalk.dim('\n Last output lines:\n' + lastLines.split('\n').map((l) => ` ${l}`).join('\n')));
|
|
416
|
-
return { filesProcessed: 0, filesFixed: 0, errors: [] };
|
|
693
|
+
return { filesProcessed: 0, filesFixed: 0, filesAlreadyPassing: 0, pollutersFixed: 0, victimsRegenerated: 0, errors: [] };
|
|
417
694
|
}
|
|
418
695
|
await saveFixCache(cwd, failingFiles);
|
|
419
696
|
}
|
|
@@ -429,17 +706,21 @@ export async function runFixLoop(options) {
|
|
|
429
706
|
const memorySnapshot = memory.toPromptSection();
|
|
430
707
|
let filesProcessed;
|
|
431
708
|
let filesFixed;
|
|
709
|
+
let filesAlreadyPassing;
|
|
432
710
|
let errors;
|
|
433
711
|
let stillFailingFiles;
|
|
712
|
+
let victimFiles;
|
|
434
713
|
if (parallel) {
|
|
435
714
|
;
|
|
436
|
-
({ filesProcessed, filesFixed, errors, stillFailingFiles } = await runFixWorkers(failingFiles, options, workerCount, memorySnapshot));
|
|
715
|
+
({ filesProcessed, filesFixed, filesAlreadyPassing, errors, stillFailingFiles, victimFiles } = await runFixWorkers(failingFiles, options, workerCount, memorySnapshot));
|
|
437
716
|
}
|
|
438
717
|
else {
|
|
439
718
|
filesProcessed = 0;
|
|
440
719
|
filesFixed = 0;
|
|
720
|
+
filesAlreadyPassing = 0;
|
|
441
721
|
errors = [];
|
|
442
722
|
stillFailingFiles = [];
|
|
723
|
+
victimFiles = [];
|
|
443
724
|
const generator = new TestGenerator({ config, env });
|
|
444
725
|
const tips = getActiveTips({
|
|
445
726
|
workers: 1,
|
|
@@ -460,8 +741,26 @@ export async function runFixLoop(options) {
|
|
|
460
741
|
const absFile = file.startsWith('/') ? file : join(cwd, file);
|
|
461
742
|
const result = await fixFile(absFile, options, generator, undefined, memory.toPromptSection());
|
|
462
743
|
filesProcessed++;
|
|
463
|
-
if (result.success)
|
|
464
|
-
|
|
744
|
+
if (result.success) {
|
|
745
|
+
if (result.skipped) {
|
|
746
|
+
filesAlreadyPassing++;
|
|
747
|
+
victimFiles.push(absFile);
|
|
748
|
+
}
|
|
749
|
+
else
|
|
750
|
+
filesFixed++;
|
|
751
|
+
}
|
|
752
|
+
else if (options.regenerateOnFailure) {
|
|
753
|
+
log(chalk.yellow(` Fix exhausted — falling back to full regeneration...`));
|
|
754
|
+
const regenResult = await regenerateFile(absFile, options, undefined, memory.toPromptSection());
|
|
755
|
+
if (regenResult.success) {
|
|
756
|
+
filesFixed++;
|
|
757
|
+
}
|
|
758
|
+
else {
|
|
759
|
+
stillFailingFiles.push(file);
|
|
760
|
+
if (regenResult.error)
|
|
761
|
+
errors.push(regenResult.error);
|
|
762
|
+
}
|
|
763
|
+
}
|
|
465
764
|
else {
|
|
466
765
|
stillFailingFiles.push(file);
|
|
467
766
|
if (result.error)
|
|
@@ -479,6 +778,14 @@ export async function runFixLoop(options) {
|
|
|
479
778
|
else
|
|
480
779
|
await clearFixCache(cwd);
|
|
481
780
|
}
|
|
482
|
-
|
|
781
|
+
let pollutersFixed = 0;
|
|
782
|
+
let victimsRegenerated = 0;
|
|
783
|
+
if (options.fixPolluters && victimFiles.length > 0) {
|
|
784
|
+
log(chalk.bold(`\n Scanning for test polluters (${victimFiles.length} victim file(s) pass alone but fail in suite)...`));
|
|
785
|
+
const polluterResult = await findAndFixPolluters(victimFiles, options, memorySnapshot);
|
|
786
|
+
pollutersFixed = polluterResult.pollutersFixed;
|
|
787
|
+
victimsRegenerated = polluterResult.victimsRegenerated;
|
|
788
|
+
}
|
|
789
|
+
return { filesProcessed, filesFixed, filesAlreadyPassing, pollutersFixed, victimsRegenerated, errors };
|
|
483
790
|
}
|
|
484
791
|
//# sourceMappingURL=fix-loop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fix-loop.js","sourceRoot":"","sources":["../../src/agent/fix-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fix-loop.js","sourceRoot":"","sources":["../../src/agent/fix-loop.ts"],"names":[],"mappings":"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"}
|