@ariso-ai/ivan 1.0.34 → 1.0.35

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.
@@ -1 +1 @@
1
- {"version":3,"file":"job-manager.js","sourceRoot":"","sources":["../../src/services/job-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-manager.js","sourceRoot":"","sources":["../../src/services/job-manager.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export declare class TaskExecutor {
11
11
  private repoInstructions;
12
12
  private baseBranch;
13
13
  private executionMode;
14
+ private selfReviewEnabled;
14
15
  constructor();
15
16
  /**
16
17
  * Prepends an architect's unresolved-concern warning to a PR body when expert
@@ -26,7 +27,19 @@ export declare class TaskExecutor {
26
27
  private runImplementation;
27
28
  private getClaudeExecutor;
28
29
  private getOpenAIService;
29
- executeWorkflow(rewritePrompt?: boolean, baseBranch?: string, mode?: ExecutionMode): Promise<void>;
30
+ /**
31
+ * Commits staged changes, retrying up to three times by handing pre-commit
32
+ * hook failures back to Claude to fix. Returns the (possibly updated) Claude
33
+ * session ID so callers can keep threading conversational context.
34
+ */
35
+ private commitWithFixLoop;
36
+ /**
37
+ * Runs a Claude self-review pass over the branch's changes before a PR is
38
+ * opened. Any fixes the review produces are committed through the same
39
+ * pre-commit fix loop as the original implementation.
40
+ */
41
+ private runSelfReview;
42
+ executeWorkflow(rewritePrompt?: boolean, baseBranch?: string, mode?: ExecutionMode, selfReview?: boolean, prefilledTasks?: string[]): Promise<void>;
30
43
  private checkAndCreateAddressTasks;
31
44
  private executeTask;
32
45
  private executeTasksWithSinglePR;
@@ -1 +1 @@
1
- {"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/services/task-executor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAa/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAIxE,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAgB;;IAYrC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;OAIG;YACW,iBAAiB;IA8B/B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAOlB,eAAe,CACnB,aAAa,GAAE,OAAe,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,GAAE,aAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC;YA8QF,0BAA0B;YA6D1B,WAAW;YAyRX,wBAAwB;IAoUhC,6BAA6B,CACjC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;CAqJjB"}
1
+ {"version":3,"file":"task-executor.d.ts","sourceRoot":"","sources":["../../src/services/task-executor.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAa/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAOxE,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAAgC;IACtD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAU;;IAanC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAmBvB;;;;OAIG;YACW,iBAAiB;IA8B/B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;IAOxB;;;;OAIG;YACW,iBAAiB;IAgI/B;;;;OAIG;YACW,aAAa;IA2DrB,eAAe,CACnB,aAAa,GAAE,OAAe,EAC9B,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,GAAE,aAAwB,EAC9B,UAAU,GAAE,OAAe,EAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,CAAC;YAyRF,0BAA0B;YA6D1B,WAAW;YAuMX,wBAAwB;IAuNhC,6BAA6B,CACjC,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC;CAsJjB"}
@@ -8,6 +8,7 @@ import { AddressTaskExecutor } from './address-task-executor.js';
8
8
  import { createGitManager, createPRService, createRepositoryManager } from './service-factory.js';
9
9
  import { PromptRewriter } from './prompt-rewriter.js';
10
10
  import { CollaborativeExecutor } from './collaborative-executor.js';
11
+ const SELF_REVIEW_PROMPT = "ok review the changes in the current branch carefully. make sure it follows repo convention, reusable component/utils/etc. don't over-engineer, dont reinvent.";
11
12
  export class TaskExecutor {
12
13
  jobManager;
13
14
  gitManager = null;
@@ -19,6 +20,7 @@ export class TaskExecutor {
19
20
  repoInstructions;
20
21
  baseBranch;
21
22
  executionMode;
23
+ selfReviewEnabled;
22
24
  constructor() {
23
25
  this.jobManager = new JobManager();
24
26
  this.repositoryManager = createRepositoryManager();
@@ -27,6 +29,7 @@ export class TaskExecutor {
27
29
  this.repoInstructions = undefined;
28
30
  this.baseBranch = undefined;
29
31
  this.executionMode = 'simple';
32
+ this.selfReviewEnabled = false;
30
33
  }
31
34
  /**
32
35
  * Prepends an architect's unresolved-concern warning to a PR body when expert
@@ -83,7 +86,133 @@ export class TaskExecutor {
83
86
  }
84
87
  return this.openaiService;
85
88
  }
86
- async executeWorkflow(rewritePrompt = false, baseBranch, mode = 'simple') {
89
+ /**
90
+ * Commits staged changes, retrying up to three times by handing pre-commit
91
+ * hook failures back to Claude to fix. Returns the (possibly updated) Claude
92
+ * session ID so callers can keep threading conversational context.
93
+ */
94
+ async commitWithFixLoop(commitMessage, executionPath, taskUuid, quiet, sessionId) {
95
+ let spinner = quiet ? null : ora('Committing changes...').start();
96
+ let commitAttempts = 0;
97
+ const maxCommitAttempts = 3;
98
+ let commitSucceeded = false;
99
+ while (commitAttempts < maxCommitAttempts && !commitSucceeded) {
100
+ try {
101
+ if (!this.gitManager) {
102
+ throw new Error('GitManager not initialized');
103
+ }
104
+ await this.gitManager.commitChanges(commitMessage);
105
+ // Only show success message if spinner is running (first attempt)
106
+ if (spinner) {
107
+ if (commitAttempts === 0) {
108
+ spinner.succeed('Changes committed');
109
+ }
110
+ else if (spinner.isSpinning) {
111
+ spinner.succeed('Commit successful after retry');
112
+ }
113
+ }
114
+ commitSucceeded = true;
115
+ }
116
+ catch (commitError) {
117
+ commitAttempts++;
118
+ const errorMessage = commitError instanceof Error
119
+ ? commitError.message
120
+ : String(commitError);
121
+ // Check if this is a pre-commit hook failure
122
+ if (errorMessage.includes('pre-commit') &&
123
+ commitAttempts < maxCommitAttempts) {
124
+ if (spinner) {
125
+ spinner.fail(`Pre-commit hook failed (attempt ${commitAttempts}/${maxCommitAttempts})`);
126
+ console.log(chalk.yellow('🔧 Running Claude to fix pre-commit errors...'));
127
+ }
128
+ // Extract the error details from the commit error
129
+ let errorDetails = errorMessage;
130
+ // Condense error details if they're too large (over 10,000 characters)
131
+ const MAX_ERROR_LENGTH = 10000;
132
+ if (errorDetails.length > MAX_ERROR_LENGTH) {
133
+ if (!quiet) {
134
+ console.log(chalk.yellow(`📊 Build output is large (${errorDetails.length} chars), condensing with AI...`));
135
+ }
136
+ try {
137
+ errorDetails = await this.getOpenAIService().condenseBuildOutput(errorDetails, MAX_ERROR_LENGTH);
138
+ }
139
+ catch (condenseError) {
140
+ // If condensation fails, just use truncation
141
+ console.warn(chalk.yellow('Failed to condense output, using truncation instead'), condenseError);
142
+ }
143
+ }
144
+ // Prepare prompt for Claude to fix the errors
145
+ const fixPrompt = `Fix the following pre-commit hook errors:\n\n${errorDetails}\n\nPlease fix all TypeScript errors, linting issues, and any other problems preventing the commit.`;
146
+ if (!quiet)
147
+ spinner = ora('Running Claude to fix pre-commit errors...').start();
148
+ try {
149
+ // Run Claude to fix the errors (pass session ID to maintain context)
150
+ const fixResult = await this.getClaudeExecutor().executeTask(fixPrompt, executionPath, sessionId);
151
+ // Update session ID
152
+ sessionId = fixResult.sessionId;
153
+ if (spinner)
154
+ spinner.succeed('Claude attempted to fix the errors');
155
+ // Update the execution log with the fix attempt
156
+ const previousLog = await this.jobManager.getTaskExecutionLog(taskUuid);
157
+ await this.jobManager.updateTaskExecutionLog(taskUuid, `${previousLog}\n\n--- Pre-commit Fix Attempt ${commitAttempts} ---\n${fixResult.log}`);
158
+ // Try to commit again on the next iteration
159
+ if (!quiet)
160
+ spinner = ora('Retrying commit...').start();
161
+ }
162
+ catch (fixError) {
163
+ if (spinner)
164
+ spinner.fail('Failed to run Claude to fix errors');
165
+ if (!quiet)
166
+ console.error(chalk.red('Claude fix attempt failed:'), fixError);
167
+ throw commitError; // Re-throw the original error
168
+ }
169
+ }
170
+ else {
171
+ // Not a pre-commit error or max attempts reached
172
+ throw commitError;
173
+ }
174
+ }
175
+ }
176
+ if (!commitSucceeded) {
177
+ throw new Error(`Failed to commit after ${maxCommitAttempts} attempts due to pre-commit hook failures`);
178
+ }
179
+ return sessionId;
180
+ }
181
+ /**
182
+ * Runs a Claude self-review pass over the branch's changes before a PR is
183
+ * opened. Any fixes the review produces are committed through the same
184
+ * pre-commit fix loop as the original implementation.
185
+ */
186
+ async runSelfReview(executionPath, taskUuid, quiet, sessionId) {
187
+ let spinner = quiet
188
+ ? null
189
+ : ora('Running self-review with Claude Code...').start();
190
+ const reviewResult = await this.getClaudeExecutor().executeTask(SELF_REVIEW_PROMPT, executionPath, sessionId);
191
+ sessionId = reviewResult.sessionId;
192
+ if (spinner)
193
+ spinner.succeed('Self-review completed');
194
+ const previousLog = await this.jobManager.getTaskExecutionLog(taskUuid);
195
+ await this.jobManager.updateTaskExecutionLog(taskUuid, `${previousLog}\n\n--- Self-Review ---\n${reviewResult.log}`);
196
+ if (!this.gitManager) {
197
+ throw new Error('GitManager not initialized');
198
+ }
199
+ const changedFiles = this.gitManager.getChangedFiles();
200
+ if (changedFiles.length === 0) {
201
+ if (!quiet)
202
+ console.log(chalk.green('✨ Self-review made no additional changes'));
203
+ return sessionId;
204
+ }
205
+ if (!quiet)
206
+ console.log(chalk.blue(`🔧 Self-review made changes to ${changedFiles.length} file(s)`));
207
+ const diff = this.gitManager.getDiff();
208
+ if (!quiet)
209
+ spinner = ora('Generating commit message...').start();
210
+ const commitMessage = await this.getOpenAIService().generateCommitMessage(diff, changedFiles);
211
+ if (spinner)
212
+ spinner.succeed(`Commit message generated: ${commitMessage}`);
213
+ return this.commitWithFixLoop(commitMessage, executionPath, taskUuid, quiet, sessionId);
214
+ }
215
+ async executeWorkflow(rewritePrompt = false, baseBranch, mode = 'simple', selfReview = false, prefilledTasks) {
87
216
  try {
88
217
  this.baseBranch = baseBranch?.trim() || undefined;
89
218
  this.executionMode = mode;
@@ -155,7 +284,7 @@ export class TaskExecutor {
155
284
  else {
156
285
  console.log(chalk.green('✅ Repository-specific instructions loaded'));
157
286
  }
158
- const { tasks, prStrategy } = await this.jobManager.promptForTasks(this.workingDir, repository.id);
287
+ const { tasks, prStrategy } = await this.jobManager.promptForTasks(this.workingDir, repository.id, prefilledTasks);
159
288
  console.log('');
160
289
  // Check if these are address tasks
161
290
  const addressTasks = tasks.filter((t) => t.type === 'address');
@@ -170,15 +299,23 @@ export class TaskExecutor {
170
299
  // Ask about PR comment monitoring upfront
171
300
  let shouldWaitForComments = false;
172
301
  const inquirer = (await import('inquirer')).default;
173
- const { waitForComments } = await inquirer.prompt([
302
+ const { waitForComments, selfReview: promptedSelfReview } = await inquirer.prompt([
174
303
  {
175
304
  type: 'confirm',
176
305
  name: 'waitForComments',
177
306
  message: 'After completing tasks, would you like to wait 30 minutes for PR reviews and automatically address any comments?',
178
307
  default: false
308
+ },
309
+ {
310
+ type: 'confirm',
311
+ name: 'selfReview',
312
+ message: 'Would you like Claude to self-review its changes before opening each PR?',
313
+ default: false,
314
+ when: !selfReview
179
315
  }
180
316
  ]);
181
317
  shouldWaitForComments = waitForComments;
318
+ this.selfReviewEnabled = selfReview || promptedSelfReview;
182
319
  // Optionally rewrite prompts before execution
183
320
  if (rewritePrompt) {
184
321
  for (const task of buildTasks) {
@@ -365,106 +502,40 @@ export class TaskExecutor {
365
502
  if (!this.gitManager) {
366
503
  throw new Error('GitManager not initialized');
367
504
  }
505
+ // Uncommitted working-tree changes still waiting to be committed.
368
506
  const changedFiles = this.gitManager.getChangedFiles();
369
- if (changedFiles.length === 0) {
507
+ // Total diff vs. the base branch: covers changes Claude already
508
+ // committed itself during execution (e.g. mid-task or via self-review),
509
+ // which leave a clean working tree but still need to be pushed/PR'd.
510
+ const changedFilesFromBase = changedFiles.length === 0
511
+ ? this.gitManager.getChangedFiles(targetBranch)
512
+ : changedFiles;
513
+ if (changedFilesFromBase.length === 0) {
370
514
  if (!quiet)
371
515
  console.log(chalk.yellow('⚠️ No changes detected, skipping commit and PR creation'));
372
516
  await this.jobManager.updateTaskStatus(task.uuid, 'completed');
373
517
  return;
374
518
  }
375
- if (!this.gitManager) {
376
- throw new Error('GitManager not initialized');
377
- }
378
- const diff = this.gitManager.getDiff();
379
- if (!quiet)
380
- spinner = ora('Generating commit message...').start();
381
- const commitMessage = await this.getOpenAIService().generateCommitMessage(diff, changedFiles);
382
- if (spinner)
383
- spinner.succeed(`Commit message generated: ${commitMessage}`);
384
- if (!quiet)
385
- spinner = ora('Committing changes...').start();
386
- if (!this.gitManager) {
387
- throw new Error('GitManager not initialized');
519
+ let sessionId = result.sessionId;
520
+ if (changedFiles.length === 0) {
521
+ if (!quiet)
522
+ console.log(chalk.blue('ℹ️ Changes were already committed during task execution'));
388
523
  }
389
- // Try to commit, handling pre-commit hook failures
390
- let commitAttempts = 0;
391
- const maxCommitAttempts = 3;
392
- let commitSucceeded = false;
393
- while (commitAttempts < maxCommitAttempts && !commitSucceeded) {
394
- try {
395
- await this.gitManager.commitChanges(commitMessage);
396
- // Only show success message if spinner is running (first attempt)
397
- if (spinner) {
398
- if (commitAttempts === 0) {
399
- spinner.succeed('Changes committed');
400
- }
401
- else if (spinner.isSpinning) {
402
- spinner.succeed('Commit successful after retry');
403
- }
404
- }
405
- commitSucceeded = true;
406
- }
407
- catch (commitError) {
408
- commitAttempts++;
409
- const errorMessage = commitError instanceof Error
410
- ? commitError.message
411
- : String(commitError);
412
- // Check if this is a pre-commit hook failure
413
- if (errorMessage.includes('pre-commit') &&
414
- commitAttempts < maxCommitAttempts) {
415
- if (spinner) {
416
- spinner.fail(`Pre-commit hook failed (attempt ${commitAttempts}/${maxCommitAttempts})`);
417
- console.log(chalk.yellow('🔧 Running Claude to fix pre-commit errors...'));
418
- }
419
- // Extract the error details from the commit error
420
- let errorDetails = errorMessage;
421
- // Condense error details if they're too large (over 10,000 characters)
422
- const MAX_ERROR_LENGTH = 10000;
423
- if (errorDetails.length > MAX_ERROR_LENGTH) {
424
- if (!quiet) {
425
- console.log(chalk.yellow(`📊 Build output is large (${errorDetails.length} chars), condensing with AI...`));
426
- }
427
- try {
428
- errorDetails =
429
- await this.getOpenAIService().condenseBuildOutput(errorDetails, MAX_ERROR_LENGTH);
430
- }
431
- catch (condenseError) {
432
- // If condensation fails, just use truncation
433
- console.warn(chalk.yellow('Failed to condense output, using truncation instead'), condenseError);
434
- }
435
- }
436
- // Prepare prompt for Claude to fix the errors
437
- const fixPrompt = `Fix the following pre-commit hook errors:\n\n${errorDetails}\n\nPlease fix all TypeScript errors, linting issues, and any other problems preventing the commit.`;
438
- if (!quiet)
439
- spinner = ora('Running Claude to fix pre-commit errors...').start();
440
- try {
441
- // Run Claude to fix the errors
442
- const fixResult = await this.getClaudeExecutor().executeTask(fixPrompt, worktreePath || this.workingDir);
443
- if (spinner)
444
- spinner.succeed('Claude attempted to fix the errors');
445
- // Update the execution log with the fix attempt
446
- const previousLog = await this.jobManager.getTaskExecutionLog(task.uuid);
447
- await this.jobManager.updateTaskExecutionLog(task.uuid, `${previousLog}\n\n--- Pre-commit Fix Attempt ${commitAttempts} ---\n${fixResult.log}`);
448
- // Try to commit again on the next iteration
449
- if (!quiet)
450
- spinner = ora('Retrying commit...').start();
451
- }
452
- catch (fixError) {
453
- if (spinner)
454
- spinner.fail('Failed to run Claude to fix errors');
455
- if (!quiet)
456
- console.error(chalk.red('Claude fix attempt failed:'), fixError);
457
- throw commitError; // Re-throw the original error
458
- }
459
- }
460
- else {
461
- // Not a pre-commit error or max attempts reached
462
- throw commitError;
463
- }
524
+ else {
525
+ if (!this.gitManager) {
526
+ throw new Error('GitManager not initialized');
464
527
  }
528
+ const diff = this.gitManager.getDiff();
529
+ if (!quiet)
530
+ spinner = ora('Generating commit message...').start();
531
+ const commitMessage = await this.getOpenAIService().generateCommitMessage(diff, changedFiles);
532
+ if (spinner)
533
+ spinner.succeed(`Commit message generated: ${commitMessage}`);
534
+ sessionId = await this.commitWithFixLoop(commitMessage, executionPath, task.uuid, quiet, result.sessionId);
465
535
  }
466
- if (!commitSucceeded) {
467
- throw new Error(`Failed to commit after ${maxCommitAttempts} attempts due to pre-commit hook failures`);
536
+ // Optionally self-review the branch before opening the PR
537
+ if (this.selfReviewEnabled) {
538
+ await this.runSelfReview(executionPath, task.uuid, quiet, sessionId);
468
539
  }
469
540
  if (!quiet)
470
541
  spinner = ora('Pushing branch...').start();
@@ -474,9 +545,13 @@ export class TaskExecutor {
474
545
  await this.gitManager.pushBranch(branchName);
475
546
  if (spinner)
476
547
  spinner.succeed('Branch pushed to origin');
548
+ // Recompute the diff/changed files against the base branch so the PR
549
+ // description reflects any commits self-review made after the initial commit.
550
+ const finalDiff = this.gitManager.getDiff(`origin/${targetBranch}`, 'HEAD');
551
+ const finalChangedFiles = this.gitManager.getChangedFiles(`origin/${targetBranch}`);
477
552
  if (!quiet)
478
553
  spinner = ora('Generating PR description...').start();
479
- const { title, body } = await this.getOpenAIService().generatePullRequestDescription(task.description, diff, changedFiles);
554
+ const { title, body } = await this.getOpenAIService().generatePullRequestDescription(task.description, finalDiff, finalChangedFiles);
480
555
  if (spinner)
481
556
  spinner.succeed('PR description generated');
482
557
  if (!quiet)
@@ -609,90 +684,7 @@ export class TaskExecutor {
609
684
  const commitMessage = await this.getOpenAIService().generateCommitMessage(diff, changedFiles);
610
685
  if (spinner)
611
686
  spinner.succeed(`Commit message generated: ${commitMessage}`);
612
- if (!quiet)
613
- spinner = ora('Committing changes...').start();
614
- // Try to commit, handling pre-commit hook failures
615
- let commitAttempts = 0;
616
- const maxCommitAttempts = 3;
617
- let commitSucceeded = false;
618
- while (commitAttempts < maxCommitAttempts && !commitSucceeded) {
619
- try {
620
- await this.gitManager.commitChanges(commitMessage);
621
- // Only show success message if spinner is running (first attempt)
622
- if (spinner) {
623
- if (commitAttempts === 0) {
624
- spinner.succeed('Changes committed');
625
- }
626
- else if (spinner.isSpinning) {
627
- spinner.succeed('Commit successful after retry');
628
- }
629
- }
630
- commitSucceeded = true;
631
- }
632
- catch (commitError) {
633
- commitAttempts++;
634
- const errorMessage = commitError instanceof Error
635
- ? commitError.message
636
- : String(commitError);
637
- // Check if this is a pre-commit hook failure
638
- if (errorMessage.includes('pre-commit') &&
639
- commitAttempts < maxCommitAttempts) {
640
- if (spinner) {
641
- spinner.fail(`Pre-commit hook failed (attempt ${commitAttempts}/${maxCommitAttempts})`);
642
- console.log(chalk.yellow('🔧 Running Claude to fix pre-commit errors...'));
643
- }
644
- // Extract the error details from the commit error
645
- let errorDetails = errorMessage;
646
- // Condense error details if they're too large (over 10,000 characters)
647
- const MAX_ERROR_LENGTH = 10000;
648
- if (errorDetails.length > MAX_ERROR_LENGTH) {
649
- if (!quiet) {
650
- console.log(chalk.yellow(`📊 Build output is large (${errorDetails.length} chars), condensing with AI...`));
651
- }
652
- try {
653
- errorDetails =
654
- await this.getOpenAIService().condenseBuildOutput(errorDetails, MAX_ERROR_LENGTH);
655
- }
656
- catch (condenseError) {
657
- // If condensation fails, just use truncation
658
- console.warn(chalk.yellow('Failed to condense output, using truncation instead'), condenseError);
659
- }
660
- }
661
- // Prepare prompt for Claude to fix the errors
662
- const fixPrompt = `Fix the following pre-commit hook errors:\n\n${errorDetails}\n\nPlease fix all TypeScript errors, linting issues, and any other problems preventing the commit.`;
663
- if (!quiet)
664
- spinner = ora('Running Claude to fix pre-commit errors...').start();
665
- try {
666
- // Run Claude to fix the errors (pass session ID to maintain context)
667
- const fixResult = await this.getClaudeExecutor().executeTask(fixPrompt, executionPath, sessionId);
668
- // Update session ID
669
- sessionId = fixResult.sessionId;
670
- if (spinner)
671
- spinner.succeed('Claude attempted to fix the errors');
672
- // Update the execution log with the fix attempt
673
- const previousLog = await this.jobManager.getTaskExecutionLog(task.uuid);
674
- await this.jobManager.updateTaskExecutionLog(task.uuid, `${previousLog}\n\n--- Pre-commit Fix Attempt ${commitAttempts} ---\n${fixResult.log}`);
675
- // Try to commit again on the next iteration
676
- if (!quiet)
677
- spinner = ora('Retrying commit...').start();
678
- }
679
- catch (fixError) {
680
- if (spinner)
681
- spinner.fail('Failed to run Claude to fix errors');
682
- if (!quiet)
683
- console.error(chalk.red('Claude fix attempt failed:'), fixError);
684
- throw commitError; // Re-throw the original error
685
- }
686
- }
687
- else {
688
- // Not a pre-commit error or max attempts reached
689
- throw commitError;
690
- }
691
- }
692
- }
693
- if (!commitSucceeded) {
694
- throw new Error(`Failed to commit after ${maxCommitAttempts} attempts due to pre-commit hook failures`);
695
- }
687
+ sessionId = await this.commitWithFixLoop(commitMessage, executionPath, task.uuid, quiet, sessionId);
696
688
  }
697
689
  else {
698
690
  if (!quiet)
@@ -702,6 +694,10 @@ export class TaskExecutor {
702
694
  if (!quiet)
703
695
  console.log(chalk.green(`✅ Task ${i + 1}/${tasks.length} completed`));
704
696
  }
697
+ // Optionally self-review the combined branch before opening the PR
698
+ if (this.selfReviewEnabled) {
699
+ sessionId = await this.runSelfReview(worktreePath || this.workingDir, tasks[tasks.length - 1].uuid, quiet, sessionId);
700
+ }
705
701
  // After all tasks are complete, create a single PR
706
702
  if (!quiet)
707
703
  spinner = ora('Pushing branch...').start();
@@ -760,6 +756,7 @@ export class TaskExecutor {
760
756
  try {
761
757
  this.baseBranch = config.baseBranch?.trim() || undefined;
762
758
  this.executionMode = config.mode || 'simple';
759
+ this.selfReviewEnabled = config.selfReview || false;
763
760
  // Quiet mode: suppress all intermediate output
764
761
  const executor = this.getClaudeExecutor();
765
762
  executor.quietMode = true;