ghcralph 0.1.2 → 0.1.3
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 +23 -16
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +42 -6
- package/dist/commands/run.js.map +1 -1
- package/dist/core/action-executor.d.ts +13 -0
- package/dist/core/action-executor.d.ts.map +1 -1
- package/dist/core/action-executor.js +32 -0
- package/dist/core/action-executor.js.map +1 -1
- package/dist/core/checkpoint-manager.d.ts +50 -11
- package/dist/core/checkpoint-manager.d.ts.map +1 -1
- package/dist/core/checkpoint-manager.js +274 -187
- package/dist/core/checkpoint-manager.js.map +1 -1
- package/dist/core/config-schema.d.ts +9 -1
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +14 -0
- package/dist/core/config-schema.js.map +1 -1
- package/dist/core/context-builder.d.ts.map +1 -1
- package/dist/core/context-builder.js +25 -14
- package/dist/core/context-builder.js.map +1 -1
- package/dist/core/index.d.ts +4 -4
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/loop-state.d.ts +8 -0
- package/dist/core/loop-state.d.ts.map +1 -1
- package/dist/core/loop-state.js.map +1 -1
- package/dist/core/progress-tracker.d.ts +73 -3
- package/dist/core/progress-tracker.d.ts.map +1 -1
- package/dist/core/progress-tracker.js +188 -2
- package/dist/core/progress-tracker.js.map +1 -1
- package/dist/core/prompt-examples.d.ts +7 -3
- package/dist/core/prompt-examples.d.ts.map +1 -1
- package/dist/core/prompt-examples.js +30 -5
- package/dist/core/prompt-examples.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Checkpoint Manager
|
|
3
3
|
*
|
|
4
|
-
* Manages automatic git commits after each loop iteration
|
|
4
|
+
* Manages automatic git commits after each loop iteration.
|
|
5
|
+
* Uses a mutex to prevent race conditions when multiple git operations
|
|
6
|
+
* are attempted concurrently.
|
|
5
7
|
*/
|
|
6
8
|
import { exec } from 'node:child_process';
|
|
7
9
|
import { promisify } from 'node:util';
|
|
10
|
+
import { Mutex } from 'async-mutex';
|
|
8
11
|
import { debug, warn } from '../utils/index.js';
|
|
9
12
|
const execAsync = promisify(exec);
|
|
10
13
|
/**
|
|
@@ -17,10 +20,14 @@ const DEFAULT_CONFIG = {
|
|
|
17
20
|
};
|
|
18
21
|
/**
|
|
19
22
|
* Checkpoint Manager class
|
|
23
|
+
*
|
|
24
|
+
* Provides thread-safe git operations using a mutex to prevent
|
|
25
|
+
* concurrent access that causes "index.lock" and "HEAD locked" errors.
|
|
20
26
|
*/
|
|
21
27
|
export class CheckpointManager {
|
|
22
28
|
config;
|
|
23
29
|
checkpoints = [];
|
|
30
|
+
gitMutex = new Mutex();
|
|
24
31
|
constructor(config = {}) {
|
|
25
32
|
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
26
33
|
}
|
|
@@ -50,6 +57,12 @@ export class CheckpointManager {
|
|
|
50
57
|
* Check if there are any modified files to commit
|
|
51
58
|
*/
|
|
52
59
|
async hasChangesToCommit() {
|
|
60
|
+
return this.gitMutex.runExclusive(() => this.hasChangesToCommitUnsafe());
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Internal: Check for changes without acquiring mutex
|
|
64
|
+
*/
|
|
65
|
+
async hasChangesToCommitUnsafe() {
|
|
53
66
|
try {
|
|
54
67
|
const { stdout } = await execAsync('git status --porcelain', { cwd: this.config.cwd });
|
|
55
68
|
return stdout.trim().length > 0;
|
|
@@ -62,6 +75,12 @@ export class CheckpointManager {
|
|
|
62
75
|
* Get list of modified files
|
|
63
76
|
*/
|
|
64
77
|
async getModifiedFiles() {
|
|
78
|
+
return this.gitMutex.runExclusive(() => this.getModifiedFilesUnsafe());
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Internal: Get modified files without acquiring mutex
|
|
82
|
+
*/
|
|
83
|
+
async getModifiedFilesUnsafe() {
|
|
65
84
|
try {
|
|
66
85
|
const { stdout } = await execAsync('git status --porcelain', { cwd: this.config.cwd });
|
|
67
86
|
return stdout
|
|
@@ -78,6 +97,12 @@ export class CheckpointManager {
|
|
|
78
97
|
* Stage all modified files
|
|
79
98
|
*/
|
|
80
99
|
async stageAllChanges() {
|
|
100
|
+
return this.gitMutex.runExclusive(() => this.stageAllChangesUnsafe());
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Internal: Stage changes without acquiring mutex
|
|
104
|
+
*/
|
|
105
|
+
async stageAllChangesUnsafe() {
|
|
81
106
|
try {
|
|
82
107
|
await execAsync('git add -A', { cwd: this.config.cwd });
|
|
83
108
|
debug('Staged all changes');
|
|
@@ -89,74 +114,138 @@ export class CheckpointManager {
|
|
|
89
114
|
}
|
|
90
115
|
}
|
|
91
116
|
/**
|
|
92
|
-
* Create a checkpoint commit
|
|
117
|
+
* Create a checkpoint commit (mutex-protected)
|
|
118
|
+
* @param iteration - Iteration number within the current task
|
|
119
|
+
* @param summary - Summary of changes made
|
|
120
|
+
* @param tokensUsed - Tokens used in this iteration
|
|
121
|
+
* @param taskContext - Optional task context for "task X/Y" numbering in commit message
|
|
93
122
|
*/
|
|
94
|
-
async createCheckpoint(iteration, summary, tokensUsed) {
|
|
123
|
+
async createCheckpoint(iteration, summary, tokensUsed, taskContext) {
|
|
95
124
|
if (!this.config.autoCommit) {
|
|
96
125
|
debug('Auto-commit disabled, skipping checkpoint');
|
|
97
126
|
return null;
|
|
98
127
|
}
|
|
99
|
-
//
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
128
|
+
// Use mutex to prevent concurrent git operations
|
|
129
|
+
return this.gitMutex.runExclusive(async () => {
|
|
130
|
+
// Check if there are changes to commit
|
|
131
|
+
const hasChanges = await this.hasChangesToCommitUnsafe();
|
|
132
|
+
if (!hasChanges) {
|
|
133
|
+
debug('No changes to commit for checkpoint');
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
// Get list of modified files before staging
|
|
137
|
+
const filesModified = await this.getModifiedFilesUnsafe();
|
|
138
|
+
// Stage all changes
|
|
139
|
+
const staged = await this.stageAllChangesUnsafe();
|
|
140
|
+
if (!staged) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
// Build commit message with optional task context
|
|
144
|
+
const truncatedSummary = summary.length > 40
|
|
145
|
+
? summary.substring(0, 37) + '...'
|
|
146
|
+
: summary;
|
|
147
|
+
let message;
|
|
148
|
+
if (taskContext) {
|
|
149
|
+
message = `${this.config.messagePrefix} task ${taskContext.taskNumber}/${taskContext.totalTasks} iter ${iteration} - ${truncatedSummary}`;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
message = `${this.config.messagePrefix} iteration ${iteration} - ${truncatedSummary}`;
|
|
153
|
+
}
|
|
154
|
+
const fullMessage = `${message}\n\nTokens used: ${tokensUsed}\nFiles modified: ${filesModified.length}`;
|
|
155
|
+
try {
|
|
156
|
+
// Create commit
|
|
157
|
+
await execAsync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: this.config.cwd });
|
|
158
|
+
// Get commit hash
|
|
159
|
+
const { stdout } = await execAsync('git rev-parse HEAD', { cwd: this.config.cwd });
|
|
160
|
+
const commitHash = stdout.trim();
|
|
161
|
+
const checkpoint = {
|
|
162
|
+
iteration,
|
|
163
|
+
commitHash,
|
|
164
|
+
message,
|
|
165
|
+
filesModified,
|
|
166
|
+
timestamp: new Date(),
|
|
167
|
+
tokensUsed,
|
|
168
|
+
};
|
|
169
|
+
this.checkpoints.push(checkpoint);
|
|
170
|
+
debug(`Created checkpoint: ${commitHash.substring(0, 7)} - ${message}`);
|
|
171
|
+
return checkpoint;
|
|
172
|
+
}
|
|
173
|
+
catch (err) {
|
|
174
|
+
warn('Failed to create checkpoint commit: ' + (err instanceof Error ? err.message : String(err)));
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
});
|
|
140
178
|
}
|
|
141
179
|
/**
|
|
142
|
-
* Rollback to a specific checkpoint
|
|
180
|
+
* Rollback to a specific checkpoint (mutex-protected)
|
|
143
181
|
*/
|
|
144
182
|
async rollbackTo(commitHash) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
183
|
+
return this.gitMutex.runExclusive(async () => {
|
|
184
|
+
try {
|
|
185
|
+
// Soft reset to keep changes in working directory for review
|
|
186
|
+
await execAsync(`git reset --soft "${commitHash}"`, { cwd: this.config.cwd });
|
|
187
|
+
debug(`Rolled back to ${commitHash.substring(0, 7)}`);
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
catch (err) {
|
|
191
|
+
warn('Failed to rollback: ' + (err instanceof Error ? err.message : String(err)));
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
});
|
|
155
195
|
}
|
|
156
196
|
/**
|
|
157
|
-
* Hard rollback to a specific checkpoint (
|
|
197
|
+
* Hard rollback to a specific checkpoint (mutex-protected)
|
|
158
198
|
*/
|
|
159
199
|
async hardRollbackTo(commitHash) {
|
|
200
|
+
return this.gitMutex.runExclusive(async () => {
|
|
201
|
+
try {
|
|
202
|
+
await execAsync(`git reset --hard "${commitHash}"`, { cwd: this.config.cwd });
|
|
203
|
+
debug(`Hard rolled back to ${commitHash.substring(0, 7)}`);
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
warn('Failed to hard rollback: ' + (err instanceof Error ? err.message : String(err)));
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Rollback by N iterations (mutex-protected)
|
|
214
|
+
*/
|
|
215
|
+
async rollbackIterations(count = 1) {
|
|
216
|
+
return this.gitMutex.runExclusive(async () => {
|
|
217
|
+
if (this.checkpoints.length < count) {
|
|
218
|
+
warn(`Cannot rollback ${count} iterations, only ${this.checkpoints.length} checkpoints available`);
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
// Get the checkpoint to rollback to
|
|
222
|
+
const targetIndex = this.checkpoints.length - count - 1;
|
|
223
|
+
if (targetIndex < 0) {
|
|
224
|
+
// Rollback before first checkpoint - get parent of first checkpoint
|
|
225
|
+
const firstCheckpoint = this.checkpoints[0];
|
|
226
|
+
if (!firstCheckpoint)
|
|
227
|
+
return false;
|
|
228
|
+
try {
|
|
229
|
+
const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
|
|
230
|
+
const parentHash = stdout.trim();
|
|
231
|
+
// Call internal version to avoid re-acquiring mutex
|
|
232
|
+
return this.hardRollbackToUnsafe(parentHash);
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
warn('Cannot find parent commit for rollback');
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
const targetCheckpoint = this.checkpoints[targetIndex];
|
|
240
|
+
if (!targetCheckpoint)
|
|
241
|
+
return false;
|
|
242
|
+
return this.hardRollbackToUnsafe(targetCheckpoint.commitHash);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Internal: Hard rollback without acquiring mutex
|
|
247
|
+
*/
|
|
248
|
+
async hardRollbackToUnsafe(commitHash) {
|
|
160
249
|
try {
|
|
161
250
|
await execAsync(`git reset --hard "${commitHash}"`, { cwd: this.config.cwd });
|
|
162
251
|
debug(`Hard rolled back to ${commitHash.substring(0, 7)}`);
|
|
@@ -168,164 +257,162 @@ export class CheckpointManager {
|
|
|
168
257
|
}
|
|
169
258
|
}
|
|
170
259
|
/**
|
|
171
|
-
*
|
|
260
|
+
* Get the initial commit hash before Ralph started (mutex-protected)
|
|
172
261
|
*/
|
|
173
|
-
async
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
// Get the checkpoint to rollback to
|
|
179
|
-
const targetIndex = this.checkpoints.length - count - 1;
|
|
180
|
-
if (targetIndex < 0) {
|
|
181
|
-
// Rollback before first checkpoint - get parent of first checkpoint
|
|
262
|
+
async getInitialCommit() {
|
|
263
|
+
return this.gitMutex.runExclusive(async () => {
|
|
264
|
+
if (this.checkpoints.length === 0) {
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
182
267
|
const firstCheckpoint = this.checkpoints[0];
|
|
183
268
|
if (!firstCheckpoint)
|
|
184
|
-
return
|
|
269
|
+
return null;
|
|
185
270
|
try {
|
|
186
271
|
const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
|
|
187
|
-
|
|
188
|
-
return this.hardRollbackTo(parentHash);
|
|
272
|
+
return stdout.trim();
|
|
189
273
|
}
|
|
190
274
|
catch {
|
|
191
|
-
|
|
192
|
-
return false;
|
|
275
|
+
return null;
|
|
193
276
|
}
|
|
194
|
-
}
|
|
195
|
-
const targetCheckpoint = this.checkpoints[targetIndex];
|
|
196
|
-
if (!targetCheckpoint)
|
|
197
|
-
return false;
|
|
198
|
-
return this.hardRollbackTo(targetCheckpoint.commitHash);
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Get the initial commit hash before Ralph started
|
|
202
|
-
*/
|
|
203
|
-
async getInitialCommit() {
|
|
204
|
-
if (this.checkpoints.length === 0) {
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
const firstCheckpoint = this.checkpoints[0];
|
|
208
|
-
if (!firstCheckpoint)
|
|
209
|
-
return null;
|
|
210
|
-
try {
|
|
211
|
-
const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
|
|
212
|
-
return stdout.trim();
|
|
213
|
-
}
|
|
214
|
-
catch {
|
|
215
|
-
return null;
|
|
216
|
-
}
|
|
277
|
+
});
|
|
217
278
|
}
|
|
218
279
|
/**
|
|
219
|
-
* Rollback all Ralph changes (
|
|
280
|
+
* Rollback all Ralph changes (mutex-protected)
|
|
220
281
|
*/
|
|
221
282
|
async rollbackAll() {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
283
|
+
return this.gitMutex.runExclusive(async () => {
|
|
284
|
+
if (this.checkpoints.length === 0) {
|
|
285
|
+
warn('No checkpoints to rollback');
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
const firstCheckpoint = this.checkpoints[0];
|
|
289
|
+
if (!firstCheckpoint)
|
|
290
|
+
return false;
|
|
291
|
+
try {
|
|
292
|
+
const { stdout } = await execAsync(`git rev-parse "${firstCheckpoint.commitHash}^"`, { cwd: this.config.cwd });
|
|
293
|
+
const initialCommit = stdout.trim();
|
|
294
|
+
return this.hardRollbackToUnsafe(initialCommit);
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
warn('Cannot find initial commit for rollback');
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
300
|
+
});
|
|
228
301
|
}
|
|
229
302
|
/**
|
|
230
|
-
* Create a task completion checkpoint commit
|
|
303
|
+
* Create a task completion checkpoint commit (mutex-protected)
|
|
304
|
+
* @param taskTitle - Title of the completed task
|
|
305
|
+
* @param taskId - ID of the completed task
|
|
306
|
+
* @param summary - Summary of the task completion
|
|
307
|
+
* @param taskContext - Optional task context for "task X/Y" numbering in commit message
|
|
231
308
|
*/
|
|
232
|
-
async createTaskCheckpoint(taskTitle, taskId, summary) {
|
|
309
|
+
async createTaskCheckpoint(taskTitle, taskId, summary, taskContext) {
|
|
233
310
|
if (!this.config.autoCommit) {
|
|
234
311
|
debug('Auto-commit disabled, skipping task checkpoint');
|
|
235
312
|
return null;
|
|
236
313
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
const
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
314
|
+
return this.gitMutex.runExclusive(async () => {
|
|
315
|
+
// Check if there are changes to commit
|
|
316
|
+
const hasChanges = await this.hasChangesToCommitUnsafe();
|
|
317
|
+
if (!hasChanges) {
|
|
318
|
+
debug('No changes to commit for task checkpoint');
|
|
319
|
+
return null;
|
|
320
|
+
}
|
|
321
|
+
// Get list of modified files before staging
|
|
322
|
+
const filesModified = await this.getModifiedFilesUnsafe();
|
|
323
|
+
// Stage all changes
|
|
324
|
+
const staged = await this.stageAllChangesUnsafe();
|
|
325
|
+
if (!staged) {
|
|
326
|
+
return null;
|
|
327
|
+
}
|
|
328
|
+
// Build commit message for task completion with optional task context
|
|
329
|
+
const truncatedTitle = taskTitle.length > 40
|
|
330
|
+
? taskTitle.substring(0, 37) + '...'
|
|
331
|
+
: taskTitle;
|
|
332
|
+
let message;
|
|
333
|
+
if (taskContext) {
|
|
334
|
+
message = `${this.config.messagePrefix} task ${taskContext.taskNumber}/${taskContext.totalTasks} complete - ${truncatedTitle}`;
|
|
335
|
+
}
|
|
336
|
+
else {
|
|
337
|
+
message = `${this.config.messagePrefix} task complete - ${truncatedTitle}`;
|
|
338
|
+
}
|
|
339
|
+
const fullMessage = `${message}\n\nTask ID: ${taskId}\nSummary: ${summary}\nFiles modified: ${filesModified.length}`;
|
|
340
|
+
try {
|
|
341
|
+
// Create commit
|
|
342
|
+
await execAsync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: this.config.cwd });
|
|
343
|
+
// Get commit hash
|
|
344
|
+
const { stdout } = await execAsync('git rev-parse HEAD', { cwd: this.config.cwd });
|
|
345
|
+
const commitHash = stdout.trim();
|
|
346
|
+
const checkpoint = {
|
|
347
|
+
iteration: 0, // Task-level checkpoint, not iteration-level
|
|
348
|
+
commitHash,
|
|
349
|
+
message,
|
|
350
|
+
filesModified,
|
|
351
|
+
timestamp: new Date(),
|
|
352
|
+
tokensUsed: 0,
|
|
353
|
+
};
|
|
354
|
+
this.checkpoints.push(checkpoint);
|
|
355
|
+
debug(`Created task checkpoint: ${commitHash.substring(0, 7)} - ${message}`);
|
|
356
|
+
return checkpoint;
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
warn('Failed to create task checkpoint commit: ' + (err instanceof Error ? err.message : String(err)));
|
|
360
|
+
return null;
|
|
361
|
+
}
|
|
362
|
+
});
|
|
278
363
|
}
|
|
279
364
|
/**
|
|
280
|
-
* Create a failure checkpoint commit (
|
|
365
|
+
* Create a failure checkpoint commit (mutex-protected)
|
|
281
366
|
*/
|
|
282
367
|
async createFailureCheckpoint(taskTitle, taskId, attempt, error) {
|
|
283
368
|
if (!this.config.autoCommit) {
|
|
284
369
|
debug('Auto-commit disabled, skipping failure checkpoint');
|
|
285
370
|
return null;
|
|
286
371
|
}
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
372
|
+
return this.gitMutex.runExclusive(async () => {
|
|
373
|
+
// Check if there are changes to commit
|
|
374
|
+
const hasChanges = await this.hasChangesToCommitUnsafe();
|
|
375
|
+
if (!hasChanges) {
|
|
376
|
+
debug('No changes to commit for failure checkpoint');
|
|
377
|
+
return null;
|
|
378
|
+
}
|
|
379
|
+
// Get list of modified files before staging
|
|
380
|
+
const filesModified = await this.getModifiedFilesUnsafe();
|
|
381
|
+
// Stage all changes
|
|
382
|
+
const staged = await this.stageAllChangesUnsafe();
|
|
383
|
+
if (!staged) {
|
|
384
|
+
return null;
|
|
385
|
+
}
|
|
386
|
+
// Build commit message for task failure
|
|
387
|
+
const truncatedTitle = taskTitle.length > 30
|
|
388
|
+
? taskTitle.substring(0, 27) + '...'
|
|
389
|
+
: taskTitle;
|
|
390
|
+
const message = `${this.config.messagePrefix} task failed (attempt ${attempt}) - ${truncatedTitle}`;
|
|
391
|
+
const errorInfo = error ? `\nError: ${error.substring(0, 200)}` : '';
|
|
392
|
+
const fullMessage = `${message}\n\nTask ID: ${taskId}\nAttempt: ${attempt}${errorInfo}\nFiles modified: ${filesModified.length}`;
|
|
393
|
+
try {
|
|
394
|
+
// Create commit
|
|
395
|
+
await execAsync(`git commit -m "${fullMessage.replace(/"/g, '\\"')}"`, { cwd: this.config.cwd });
|
|
396
|
+
// Get commit hash
|
|
397
|
+
const { stdout } = await execAsync('git rev-parse HEAD', { cwd: this.config.cwd });
|
|
398
|
+
const commitHash = stdout.trim();
|
|
399
|
+
const checkpoint = {
|
|
400
|
+
iteration: 0, // Task-level checkpoint
|
|
401
|
+
commitHash,
|
|
402
|
+
message,
|
|
403
|
+
filesModified,
|
|
404
|
+
timestamp: new Date(),
|
|
405
|
+
tokensUsed: 0,
|
|
406
|
+
};
|
|
407
|
+
this.checkpoints.push(checkpoint);
|
|
408
|
+
debug(`Created failure checkpoint: ${commitHash.substring(0, 7)} - ${message}`);
|
|
409
|
+
return checkpoint;
|
|
410
|
+
}
|
|
411
|
+
catch (err) {
|
|
412
|
+
warn('Failed to create failure checkpoint commit: ' + (err instanceof Error ? err.message : String(err)));
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
});
|
|
329
416
|
}
|
|
330
417
|
}
|
|
331
418
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../src/core/checkpoint-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkpoint-manager.js","sourceRoot":"","sources":["../../src/core/checkpoint-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
* Plan source type
|
|
8
8
|
*/
|
|
9
9
|
export type PlanSource = 'github' | 'local';
|
|
10
|
+
/**
|
|
11
|
+
* Progress file verbosity level
|
|
12
|
+
*/
|
|
13
|
+
export type ProgressVerbosity = 'minimal' | 'standard' | 'full';
|
|
10
14
|
/**
|
|
11
15
|
* MCP Server configuration for custom tools
|
|
12
16
|
*/
|
|
@@ -56,6 +60,10 @@ export interface RalphConfiguration {
|
|
|
56
60
|
maxRetriesPerTask?: number;
|
|
57
61
|
/** Whether to auto-push after each task completion (default: false) */
|
|
58
62
|
autoPush?: boolean;
|
|
63
|
+
/** Push strategy: 'per-task' pushes after each task, 'per-run' pushes after all tasks complete (default: 'per-task') */
|
|
64
|
+
pushStrategy?: 'per-task' | 'per-run' | 'manual';
|
|
65
|
+
/** Progress file verbosity level: 'minimal' for CI, 'standard' for normal use, 'full' for debugging (default: 'standard') */
|
|
66
|
+
progressVerbosity?: ProgressVerbosity;
|
|
59
67
|
}
|
|
60
68
|
/**
|
|
61
69
|
* Default configuration values
|
|
@@ -64,7 +72,7 @@ export declare const DEFAULT_CONFIG: RalphConfiguration;
|
|
|
64
72
|
/**
|
|
65
73
|
* Configuration keys for validation
|
|
66
74
|
*/
|
|
67
|
-
export declare const CONFIG_KEYS: readonly ["planSource", "maxIterations", "maxTokens", "defaultModel", "autoCommit", "branchPrefix", "githubRepo", "githubLabel", "githubMilestone", "githubAssignee", "localPlanFile", "promptTemplate", "mcpServers", "maxRetriesPerTask", "autoPush"];
|
|
75
|
+
export declare const CONFIG_KEYS: readonly ["planSource", "maxIterations", "maxTokens", "defaultModel", "autoCommit", "branchPrefix", "githubRepo", "githubLabel", "githubMilestone", "githubAssignee", "localPlanFile", "promptTemplate", "mcpServers", "maxRetriesPerTask", "autoPush", "pushStrategy", "progressVerbosity"];
|
|
68
76
|
export type ConfigKey = (typeof CONFIG_KEYS)[number];
|
|
69
77
|
/**
|
|
70
78
|
* Check if a string is a valid config key
|