opencastle 0.23.0 → 0.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/convoy/engine.d.ts +1 -0
- package/dist/cli/convoy/engine.d.ts.map +1 -1
- package/dist/cli/convoy/engine.js +72 -22
- package/dist/cli/convoy/engine.js.map +1 -1
- package/dist/cli/convoy/engine.test.js +205 -0
- package/dist/cli/convoy/engine.test.js.map +1 -1
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +5 -4
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +8 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/run/schema.d.ts.map +1 -1
- package/dist/cli/run/schema.js +8 -0
- package/dist/cli/run/schema.js.map +1 -1
- package/dist/cli/run/schema.test.js +41 -0
- package/dist/cli/run/schema.test.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +18 -5
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/types.d.ts +2 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/cli/convoy/engine.test.ts +240 -0
- package/src/cli/convoy/engine.ts +80 -23
- package/src/cli/dashboard.ts +6 -5
- package/src/cli/init.ts +9 -1
- package/src/cli/run/schema.test.ts +51 -0
- package/src/cli/run/schema.ts +10 -0
- package/src/cli/run.ts +20 -7
- package/src/cli/types.ts +2 -0
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/orchestrator/agents/team-lead.agent.md +6 -6
- package/src/orchestrator/prompts/bug-fix.prompt.md +6 -2
- package/src/orchestrator/prompts/generate-convoy.prompt.md +3 -3
- package/src/orchestrator/prompts/implement-feature.prompt.md +8 -19
- package/src/orchestrator/skills/decomposition/SKILL.md +1 -0
- package/src/orchestrator/skills/orchestration-protocols/SKILL.md +32 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAQ,QAAQ,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAA;AAG9E,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAG9D,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAQ,QAAQ,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAA;AAG9E,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAG9D,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,YAAY,CAAA;AAU1D,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,QAAQ,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,eAAe,CAAA;IAClC,WAAW,CAAC,EAAE,UAAU,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3F,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC5F,IAAI,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IAC5B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;CAChD;AA6bD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CA0I7E"}
|
|
@@ -12,6 +12,7 @@ import { exportConvoyToNdjson } from './export.js';
|
|
|
12
12
|
import { buildPhases, formatDuration } from '../run/executor.js';
|
|
13
13
|
import { parseTimeout } from '../run/schema.js';
|
|
14
14
|
import { getAdapter, detectAdapter } from '../run/adapters/index.js';
|
|
15
|
+
import { c } from '../prompt.js';
|
|
15
16
|
const execFile = promisify(execFileCb);
|
|
16
17
|
// ── Internal helpers ──────────────────────────────────────────────────────────
|
|
17
18
|
function msToTimeout(ms) {
|
|
@@ -45,6 +46,8 @@ function makeTimeoutPromise(ms) {
|
|
|
45
46
|
}
|
|
46
47
|
// ── Core convoy execution ─────────────────────────────────────────────────────
|
|
47
48
|
async function runConvoy(convoyId, spec, adapter, store, events, wtManager, mergeQueue, basePath, baseBranch, verbose, startTime) {
|
|
49
|
+
const totalTasks = spec.tasks?.length ?? 0;
|
|
50
|
+
let completedCount = 0;
|
|
48
51
|
const activeTaskMap = new Map();
|
|
49
52
|
const taskAdapterMap = new Map();
|
|
50
53
|
const healthMonitor = createHealthMonitor({
|
|
@@ -72,8 +75,7 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
72
75
|
if (!task || task.status !== 'pending')
|
|
73
76
|
return;
|
|
74
77
|
store.updateTaskStatus(taskId, convoyId, 'skipped', { output: reason });
|
|
75
|
-
|
|
76
|
-
process.stdout.write(`\u2298 ${taskId}\n`);
|
|
78
|
+
process.stdout.write(` ${c.dim('⊘')} ${c.bold(`[${taskId}]`)} skipped\n`);
|
|
77
79
|
events.emit('task_skipped', { reason }, { convoy_id: convoyId, task_id: taskId });
|
|
78
80
|
for (const t of allTasks) {
|
|
79
81
|
const deps = t.depends_on ? JSON.parse(t.depends_on) : [];
|
|
@@ -148,8 +150,7 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
148
150
|
store.updateWorkerStatus(workerId, 'running');
|
|
149
151
|
const task = taskRecordToTask(taskRecord);
|
|
150
152
|
activeTaskMap.set(taskRecord.id, task);
|
|
151
|
-
|
|
152
|
-
process.stdout.write(`\u25b6 ${taskRecord.id}\n`);
|
|
153
|
+
process.stdout.write(` ${c.cyan('▶')} ${c.bold(`[${taskRecord.id}]`)} ${taskRecord.agent}${worktreePath ? c.dim(' (worktree)') : ''}\n`);
|
|
153
154
|
events.emit('task_started', { worker_id: workerId }, { convoy_id: convoyId, task_id: taskRecord.id, worker_id: workerId });
|
|
154
155
|
const taskStartTime = Date.now();
|
|
155
156
|
const timeout = makeTimeoutPromise(taskRecord.timeout_ms);
|
|
@@ -191,9 +192,7 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
191
192
|
finished_at: null,
|
|
192
193
|
});
|
|
193
194
|
store.updateWorkerStatus(workerId, 'killed', { finished_at: finishedAt });
|
|
194
|
-
|
|
195
|
-
process.stdout.write(`\u23f1 ${taskRecord.id} retry ${freshRecord.retries + 1}/${freshRecord.max_retries}\n`);
|
|
196
|
-
}
|
|
195
|
+
process.stdout.write(` ${c.yellow('⟳')} ${c.bold(`[${taskRecord.id}]`)} timed out, retry ${freshRecord.retries + 1}/${freshRecord.max_retries}\n`);
|
|
197
196
|
}
|
|
198
197
|
else {
|
|
199
198
|
store.withTransaction(() => {
|
|
@@ -203,8 +202,8 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
203
202
|
});
|
|
204
203
|
store.updateWorkerStatus(workerId, 'failed', { finished_at: finishedAt });
|
|
205
204
|
});
|
|
206
|
-
|
|
207
|
-
|
|
205
|
+
completedCount++;
|
|
206
|
+
process.stdout.write(` ${c.red('⏱')} ${c.bold(`[${taskRecord.id}]`)} timed out ${c.dim(`[${completedCount}/${totalTasks}]`)}\n`);
|
|
208
207
|
events.emit('task_failed', { reason: 'timeout', worker_id: workerId }, { convoy_id: convoyId, task_id: taskRecord.id, worker_id: workerId });
|
|
209
208
|
cascadeFailure(taskRecord.id);
|
|
210
209
|
}
|
|
@@ -242,8 +241,8 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
242
241
|
});
|
|
243
242
|
store.updateWorkerStatus(workerId, 'done', { finished_at: finishedAt });
|
|
244
243
|
});
|
|
245
|
-
|
|
246
|
-
|
|
244
|
+
completedCount++;
|
|
245
|
+
process.stdout.write(` ${c.green('✓')} ${c.bold(`[${taskRecord.id}]`)} ${elapsed} ${c.dim(`[${completedCount}/${totalTasks}]`)}\n`);
|
|
247
246
|
events.emit('task_done', { exit_code: result.exitCode, worker_id: workerId }, { convoy_id: convoyId, task_id: taskRecord.id, worker_id: workerId });
|
|
248
247
|
taskAdapterMap.delete(taskRecord.id);
|
|
249
248
|
return;
|
|
@@ -262,9 +261,7 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
262
261
|
finished_at: null,
|
|
263
262
|
});
|
|
264
263
|
store.updateWorkerStatus(workerId, 'failed', { finished_at: finishedAt });
|
|
265
|
-
|
|
266
|
-
process.stdout.write(`\u2717 ${taskRecord.id} retry ${freshRecord.retries + 1}/${freshRecord.max_retries}\n`);
|
|
267
|
-
}
|
|
264
|
+
process.stdout.write(` ${c.yellow('⟳')} ${c.bold(`[${taskRecord.id}]`)} retry ${freshRecord.retries + 1}/${freshRecord.max_retries}\n`);
|
|
268
265
|
}
|
|
269
266
|
else {
|
|
270
267
|
store.withTransaction(() => {
|
|
@@ -275,18 +272,31 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
275
272
|
});
|
|
276
273
|
store.updateWorkerStatus(workerId, 'failed', { finished_at: finishedAt });
|
|
277
274
|
});
|
|
278
|
-
|
|
279
|
-
|
|
275
|
+
completedCount++;
|
|
276
|
+
process.stdout.write(` ${c.red('✗')} ${c.bold(`[${taskRecord.id}]`)} failed ${elapsed} ${c.dim(`[${completedCount}/${totalTasks}]`)}\n`);
|
|
277
|
+
if (verbose) {
|
|
278
|
+
const outputPreview = result.output.split('\n').slice(0, 5).join('\n');
|
|
279
|
+
process.stdout.write(`${outputPreview}\n`);
|
|
280
|
+
}
|
|
280
281
|
events.emit('task_failed', { reason: 'error', exit_code: result.exitCode, worker_id: workerId }, { convoy_id: convoyId, task_id: taskRecord.id, worker_id: workerId });
|
|
281
282
|
cascadeFailure(taskRecord.id);
|
|
282
283
|
}
|
|
283
284
|
taskAdapterMap.delete(taskRecord.id);
|
|
284
285
|
}
|
|
285
286
|
// ── Main execution loop ───────────────────────────────────────────────────
|
|
287
|
+
let lastPhase = -1;
|
|
286
288
|
try {
|
|
287
289
|
let ready = store.getReadyTasks(convoyId);
|
|
288
290
|
const concurrency = spec.concurrency ?? 1;
|
|
289
291
|
while (ready.length > 0) {
|
|
292
|
+
for (const t of ready) {
|
|
293
|
+
if (t.phase !== lastPhase) {
|
|
294
|
+
lastPhase = t.phase;
|
|
295
|
+
const tasksInPhase = ready.filter(r => r.phase === t.phase);
|
|
296
|
+
const ids = tasksInPhase.map(r => r.id).join(', ');
|
|
297
|
+
process.stdout.write(`\n ${c.bold(`Phase ${t.phase + 1}:`)} ${c.dim(ids)}\n`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
290
300
|
for (let i = 0; i < ready.length; i += concurrency) {
|
|
291
301
|
await Promise.all(ready.slice(i, i + concurrency).map(t => executeOneTask(t)));
|
|
292
302
|
}
|
|
@@ -297,20 +307,60 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
297
307
|
healthMonitor.stop();
|
|
298
308
|
}
|
|
299
309
|
// ── Validation gates ──────────────────────────────────────────────────────
|
|
300
|
-
const
|
|
301
|
-
|
|
310
|
+
const maxGateRetries = spec.gate_retries ?? 0;
|
|
311
|
+
let gateAttempt = 0;
|
|
312
|
+
let gateResults = [];
|
|
313
|
+
while (gateAttempt <= maxGateRetries) {
|
|
314
|
+
if (!spec.gates || spec.gates.length === 0)
|
|
315
|
+
break;
|
|
316
|
+
gateResults = [];
|
|
317
|
+
process.stdout.write(`\n ${c.bold(gateAttempt === 0 ? 'Gates:' : `Gates (retry ${gateAttempt}/${maxGateRetries}):`)}\n`);
|
|
302
318
|
for (const command of spec.gates) {
|
|
303
319
|
try {
|
|
304
320
|
await execFile('sh', ['-c', command], { cwd: basePath });
|
|
305
321
|
gateResults.push({ command, exitCode: 0, passed: true });
|
|
322
|
+
process.stdout.write(` ${c.green('✓')} ${c.dim(command)}\n`);
|
|
306
323
|
}
|
|
307
324
|
catch (err) {
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
gateResults.push({ command, exitCode: code, passed: false });
|
|
325
|
+
const execErr = err;
|
|
326
|
+
const code = typeof execErr.code === 'number' ? execErr.code : 1;
|
|
327
|
+
const output = execErr.stderr || execErr.stdout || execErr.message || '';
|
|
328
|
+
gateResults.push({ command, exitCode: code, passed: false, output });
|
|
329
|
+
process.stdout.write(` ${c.red('✗')} ${c.dim(command)}\n`);
|
|
312
330
|
}
|
|
313
331
|
}
|
|
332
|
+
const failedGates = gateResults.filter(g => !g.passed);
|
|
333
|
+
if (failedGates.length === 0)
|
|
334
|
+
break; // All gates passed
|
|
335
|
+
// Can we retry?
|
|
336
|
+
if (gateAttempt >= maxGateRetries)
|
|
337
|
+
break; // No more retries
|
|
338
|
+
// Create and execute a fix task
|
|
339
|
+
gateAttempt++;
|
|
340
|
+
const failureSummary = failedGates
|
|
341
|
+
.map(g => `Command: ${g.command}\nExit code: ${g.exitCode}\nOutput:\n${g.output ?? '(no output)'}`)
|
|
342
|
+
.join('\n\n---\n\n');
|
|
343
|
+
const fixPrompt = `The following validation gates failed after all convoy tasks completed. Fix the issues so these commands pass.\n\n${failureSummary}`;
|
|
344
|
+
const fixTaskId = `gate-fix-${gateAttempt}`;
|
|
345
|
+
process.stdout.write(`\n ${c.yellow('⟳')} ${c.bold(`[${fixTaskId}]`)} fixing gate failures (attempt ${gateAttempt}/${maxGateRetries})\n`);
|
|
346
|
+
const fixTask = {
|
|
347
|
+
id: fixTaskId,
|
|
348
|
+
prompt: fixPrompt,
|
|
349
|
+
agent: spec.defaults?.agent ?? 'developer',
|
|
350
|
+
timeout: spec.defaults?.timeout ?? '30m',
|
|
351
|
+
depends_on: [],
|
|
352
|
+
files: [],
|
|
353
|
+
description: `Auto-fix gate failures (attempt ${gateAttempt})`,
|
|
354
|
+
max_retries: 0,
|
|
355
|
+
};
|
|
356
|
+
const fixResult = await adapter.execute(fixTask, { verbose, cwd: basePath });
|
|
357
|
+
if (fixResult.success) {
|
|
358
|
+
process.stdout.write(` ${c.green('✓')} ${c.bold(`[${fixTaskId}]`)} fix applied\n`);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
process.stdout.write(` ${c.red('✗')} ${c.bold(`[${fixTaskId}]`)} fix failed\n`);
|
|
362
|
+
break; // Don't retry if the fix task itself fails
|
|
363
|
+
}
|
|
314
364
|
}
|
|
315
365
|
// ── Final status & summary ────────────────────────────────────────────────
|
|
316
366
|
const allTasksFinal = store.getTasksByConvoy(convoyId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1388,4 +1388,209 @@ describe('cost tracking', () => {
|
|
|
1388
1388
|
expect(result.cost).toBeUndefined();
|
|
1389
1389
|
});
|
|
1390
1390
|
});
|
|
1391
|
+
// ── 22. Progress reporting (always-on output) ─────────────────────────────────
|
|
1392
|
+
describe('progress reporting', () => {
|
|
1393
|
+
let stdoutSpy;
|
|
1394
|
+
let writtenChunks;
|
|
1395
|
+
beforeEach(() => {
|
|
1396
|
+
writtenChunks = [];
|
|
1397
|
+
stdoutSpy = vi.spyOn(process.stdout, 'write').mockImplementation((data) => {
|
|
1398
|
+
writtenChunks.push(String(data));
|
|
1399
|
+
return true;
|
|
1400
|
+
});
|
|
1401
|
+
});
|
|
1402
|
+
afterEach(() => {
|
|
1403
|
+
stdoutSpy.mockRestore();
|
|
1404
|
+
});
|
|
1405
|
+
it('prints task start message without verbose flag', async () => {
|
|
1406
|
+
const adapter = makeAdapter();
|
|
1407
|
+
const engine = createConvoyEngine({
|
|
1408
|
+
spec: makeSpec(),
|
|
1409
|
+
specYaml: 'name: test',
|
|
1410
|
+
adapter,
|
|
1411
|
+
dbPath,
|
|
1412
|
+
_worktreeManager: makeWorktreeManager(),
|
|
1413
|
+
_mergeQueue: makeMergeQueue(),
|
|
1414
|
+
});
|
|
1415
|
+
await engine.run();
|
|
1416
|
+
const written = writtenChunks.join('');
|
|
1417
|
+
expect(written).toContain('[task-1]');
|
|
1418
|
+
expect(written).toMatch(/▶/);
|
|
1419
|
+
});
|
|
1420
|
+
it('prints task completion with counter', async () => {
|
|
1421
|
+
const adapter = makeAdapter();
|
|
1422
|
+
const engine = createConvoyEngine({
|
|
1423
|
+
spec: makeSpec(),
|
|
1424
|
+
specYaml: 'name: test',
|
|
1425
|
+
adapter,
|
|
1426
|
+
dbPath,
|
|
1427
|
+
_worktreeManager: makeWorktreeManager(),
|
|
1428
|
+
_mergeQueue: makeMergeQueue(),
|
|
1429
|
+
});
|
|
1430
|
+
await engine.run();
|
|
1431
|
+
const written = writtenChunks.join('');
|
|
1432
|
+
expect(written).toContain('[1/1]');
|
|
1433
|
+
expect(written).toMatch(/✓/);
|
|
1434
|
+
});
|
|
1435
|
+
it('prints task failure with counter', async () => {
|
|
1436
|
+
const adapter = makeAdapter();
|
|
1437
|
+
adapter.execute.mockResolvedValue({ success: false, output: 'boom', exitCode: 1 });
|
|
1438
|
+
const engine = createConvoyEngine({
|
|
1439
|
+
spec: makeSpec({}, [{ id: 'task-1', max_retries: 0 }]),
|
|
1440
|
+
specYaml: 'name: test',
|
|
1441
|
+
adapter,
|
|
1442
|
+
dbPath,
|
|
1443
|
+
_worktreeManager: makeWorktreeManager(),
|
|
1444
|
+
_mergeQueue: makeMergeQueue(),
|
|
1445
|
+
});
|
|
1446
|
+
await engine.run();
|
|
1447
|
+
const written = writtenChunks.join('');
|
|
1448
|
+
expect(written).toContain('[1/1]');
|
|
1449
|
+
expect(written).toMatch(/✗/);
|
|
1450
|
+
});
|
|
1451
|
+
it('prints phase headers when tasks span multiple phases', async () => {
|
|
1452
|
+
const adapter = makeAdapter();
|
|
1453
|
+
const spec = makeSpec({}, [
|
|
1454
|
+
{ id: 'task-a', depends_on: [] },
|
|
1455
|
+
{ id: 'task-b', depends_on: ['task-a'] },
|
|
1456
|
+
]);
|
|
1457
|
+
const engine = createConvoyEngine({
|
|
1458
|
+
spec,
|
|
1459
|
+
specYaml: 'name: test',
|
|
1460
|
+
adapter,
|
|
1461
|
+
dbPath,
|
|
1462
|
+
_worktreeManager: makeWorktreeManager(),
|
|
1463
|
+
_mergeQueue: makeMergeQueue(),
|
|
1464
|
+
});
|
|
1465
|
+
await engine.run();
|
|
1466
|
+
const written = writtenChunks.join('');
|
|
1467
|
+
expect(written).toContain('Phase 1:');
|
|
1468
|
+
expect(written).toContain('Phase 2:');
|
|
1469
|
+
});
|
|
1470
|
+
it('prints gate results with pass/fail indicators', async () => {
|
|
1471
|
+
const adapter = makeAdapter();
|
|
1472
|
+
const spec = makeSpec({ gates: ['echo gate-ok', 'false'] }, [{ id: 'task-1' }]);
|
|
1473
|
+
const engine = createConvoyEngine({
|
|
1474
|
+
spec,
|
|
1475
|
+
specYaml: 'name: test',
|
|
1476
|
+
adapter,
|
|
1477
|
+
dbPath,
|
|
1478
|
+
_worktreeManager: makeWorktreeManager(),
|
|
1479
|
+
_mergeQueue: makeMergeQueue(),
|
|
1480
|
+
});
|
|
1481
|
+
await engine.run();
|
|
1482
|
+
const written = writtenChunks.join('');
|
|
1483
|
+
expect(written).toContain('Gates:');
|
|
1484
|
+
expect(written).toContain('echo gate-ok');
|
|
1485
|
+
expect(written).toContain('false');
|
|
1486
|
+
});
|
|
1487
|
+
it('prints retry messages when a task fails and is retried', async () => {
|
|
1488
|
+
const adapter = makeAdapter();
|
|
1489
|
+
adapter.execute
|
|
1490
|
+
.mockImplementationOnce(async () => {
|
|
1491
|
+
await new Promise(r => setTimeout(r, 5));
|
|
1492
|
+
return { success: false, output: 'fail', exitCode: 1 };
|
|
1493
|
+
})
|
|
1494
|
+
.mockImplementationOnce(async () => {
|
|
1495
|
+
await new Promise(r => setTimeout(r, 5));
|
|
1496
|
+
return { success: true, output: 'ok', exitCode: 0 };
|
|
1497
|
+
});
|
|
1498
|
+
const engine = createConvoyEngine({
|
|
1499
|
+
spec: makeSpec({}, [{ id: 'task-1', max_retries: 1 }]),
|
|
1500
|
+
specYaml: 'name: test',
|
|
1501
|
+
adapter,
|
|
1502
|
+
dbPath,
|
|
1503
|
+
_worktreeManager: makeWorktreeManager(),
|
|
1504
|
+
_mergeQueue: makeMergeQueue(),
|
|
1505
|
+
});
|
|
1506
|
+
await engine.run();
|
|
1507
|
+
const written = writtenChunks.join('');
|
|
1508
|
+
expect(written).toMatch(/⟳/);
|
|
1509
|
+
expect(written).toContain('retry 1/1');
|
|
1510
|
+
});
|
|
1511
|
+
});
|
|
1512
|
+
// ── 23. Gate retry mechanism ──────────────────────────────────────────────────
|
|
1513
|
+
describe('gate retry mechanism', () => {
|
|
1514
|
+
let tmpDir;
|
|
1515
|
+
let adapter;
|
|
1516
|
+
let wtManager;
|
|
1517
|
+
let mergeQueue;
|
|
1518
|
+
beforeEach(() => {
|
|
1519
|
+
tmpDir = mkdtempSync(join(tmpdir(), 'convoy-gate-retry-'));
|
|
1520
|
+
adapter = makeAdapter();
|
|
1521
|
+
wtManager = makeWorktreeManager();
|
|
1522
|
+
mergeQueue = makeMergeQueue();
|
|
1523
|
+
});
|
|
1524
|
+
afterEach(() => {
|
|
1525
|
+
rmSync(tmpDir, { recursive: true, force: true });
|
|
1526
|
+
});
|
|
1527
|
+
it('gates pass on first attempt when gate_retries > 0 — no fix task run', async () => {
|
|
1528
|
+
const spec = makeSpec({ gates: [`node -e "process.exit(0)"`], gate_retries: 1 }, [{ id: 'task-1' }]);
|
|
1529
|
+
const engine = createConvoyEngine({
|
|
1530
|
+
spec,
|
|
1531
|
+
specYaml: 'name: test',
|
|
1532
|
+
adapter,
|
|
1533
|
+
basePath: tmpDir,
|
|
1534
|
+
_worktreeManager: wtManager,
|
|
1535
|
+
_mergeQueue: mergeQueue,
|
|
1536
|
+
});
|
|
1537
|
+
const result = await engine.run();
|
|
1538
|
+
expect(result.status).toBe('done');
|
|
1539
|
+
// Only task-1 executed, no fix task needed
|
|
1540
|
+
expect(adapter.execute).toHaveBeenCalledTimes(1);
|
|
1541
|
+
});
|
|
1542
|
+
it('defaults gate_retries to 0 (no retry on gate failure)', async () => {
|
|
1543
|
+
const spec = makeSpec({ gates: ['false'] }, [{ id: 'task-1' }]);
|
|
1544
|
+
const engine = createConvoyEngine({
|
|
1545
|
+
spec,
|
|
1546
|
+
specYaml: 'name: test',
|
|
1547
|
+
adapter,
|
|
1548
|
+
basePath: tmpDir,
|
|
1549
|
+
_worktreeManager: wtManager,
|
|
1550
|
+
_mergeQueue: mergeQueue,
|
|
1551
|
+
});
|
|
1552
|
+
const result = await engine.run();
|
|
1553
|
+
expect(result.status).toBe('gate-failed');
|
|
1554
|
+
// No fix task attempted — only task-1 was executed
|
|
1555
|
+
expect(adapter.execute).toHaveBeenCalledTimes(1);
|
|
1556
|
+
});
|
|
1557
|
+
it('calls adapter.execute with fix prompt when gates fail and retries available', async () => {
|
|
1558
|
+
const spec = makeSpec({ gates: ['false'], gate_retries: 1 }, [{ id: 'task-1' }]);
|
|
1559
|
+
const engine = createConvoyEngine({
|
|
1560
|
+
spec,
|
|
1561
|
+
specYaml: 'name: test',
|
|
1562
|
+
adapter,
|
|
1563
|
+
basePath: tmpDir,
|
|
1564
|
+
_worktreeManager: wtManager,
|
|
1565
|
+
_mergeQueue: mergeQueue,
|
|
1566
|
+
});
|
|
1567
|
+
const result = await engine.run();
|
|
1568
|
+
// The fix task should have been called (adapter.execute called for task-1 + gate-fix-1)
|
|
1569
|
+
expect(adapter.execute).toHaveBeenCalledTimes(2);
|
|
1570
|
+
// The second call should be the fix task
|
|
1571
|
+
const fixCall = adapter.execute.mock.calls[1];
|
|
1572
|
+
expect(fixCall[0].id).toBe('gate-fix-1');
|
|
1573
|
+
expect(fixCall[0].prompt).toContain('validation gates failed');
|
|
1574
|
+
// Gates still fail after fix, so final status is gate-failed
|
|
1575
|
+
expect(result.status).toBe('gate-failed');
|
|
1576
|
+
});
|
|
1577
|
+
it('stops retrying when fix task fails', async () => {
|
|
1578
|
+
adapter.execute
|
|
1579
|
+
.mockResolvedValueOnce({ success: true, output: 'ok', exitCode: 0 }) // task-1
|
|
1580
|
+
.mockResolvedValueOnce({ success: false, output: 'fix failed', exitCode: 1 }); // gate-fix-1
|
|
1581
|
+
const spec = makeSpec({ gates: ['false'], gate_retries: 2 }, [{ id: 'task-1' }]);
|
|
1582
|
+
const engine = createConvoyEngine({
|
|
1583
|
+
spec,
|
|
1584
|
+
specYaml: 'name: test',
|
|
1585
|
+
adapter,
|
|
1586
|
+
basePath: tmpDir,
|
|
1587
|
+
_worktreeManager: wtManager,
|
|
1588
|
+
_mergeQueue: mergeQueue,
|
|
1589
|
+
});
|
|
1590
|
+
const result = await engine.run();
|
|
1591
|
+
// Only 2 adapter calls: task-1 + one failed fix attempt (no second retry)
|
|
1592
|
+
expect(adapter.execute).toHaveBeenCalledTimes(2);
|
|
1593
|
+
expect(result.status).toBe('gate-failed');
|
|
1594
|
+
});
|
|
1595
|
+
});
|
|
1391
1596
|
//# sourceMappingURL=engine.test.js.map
|