@lumenflow/core 2.18.2 → 2.18.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/dist/micro-worktree-shared.d.ts +134 -0
- package/dist/micro-worktree-shared.d.ts.map +1 -0
- package/dist/micro-worktree-shared.js +350 -0
- package/dist/micro-worktree-shared.js.map +1 -0
- package/dist/micro-worktree.d.ts +4 -273
- package/dist/micro-worktree.d.ts.map +1 -1
- package/dist/micro-worktree.js +2 -540
- package/dist/micro-worktree.js.map +1 -1
- package/package.json +6 -2
package/dist/micro-worktree.js
CHANGED
|
@@ -28,438 +28,19 @@
|
|
|
28
28
|
* @see {@link packages/@lumenflow/cli/src/initiative-create.ts} - Initiative creation (WU-1439)
|
|
29
29
|
*/
|
|
30
30
|
import { getGitForCwd, createGitForPath } from './git-adapter.js';
|
|
31
|
-
import { existsSync, rmSync, mkdtempSync } from 'node:fs';
|
|
32
31
|
import { execSync } from 'node:child_process';
|
|
33
|
-
import { tmpdir } from 'node:os';
|
|
34
32
|
import { join } from 'node:path';
|
|
35
33
|
import pRetry from 'p-retry';
|
|
36
34
|
import { BRANCHES, REMOTES, GIT_REFS, PKG_MANAGER, SCRIPTS, PRETTIER_FLAGS, STDIO_MODES, } from './wu-constants.js';
|
|
37
35
|
import { getConfig } from './lumenflow-config.js';
|
|
36
|
+
import { MAX_MERGE_RETRIES, MAX_PUSH_RETRIES, DEFAULT_PUSH_RETRY_CONFIG, resolvePushRetryConfig, LUMENFLOW_FORCE_ENV, LUMENFLOW_FORCE_REASON_ENV, LUMENFLOW_WU_TOOL_ENV, DEFAULT_LOG_PREFIX, RetryExhaustionError, isRetryExhaustionError, formatRetryExhaustionError, shouldSkipRemoteOperations, getTempBranchName, createMicroWorktreeDir, findWorktreeByBranch, cleanupOrphanedMicroWorktree, cleanupMicroWorktree, pushRefspecWithForce, pushRefspecWithRetry, } from './micro-worktree-shared.js';
|
|
38
37
|
/**
|
|
39
38
|
* Maximum retry attempts for ff-only merge when main moves
|
|
40
39
|
*
|
|
41
40
|
* This handles race conditions when multiple agents run wu:create or wu:edit
|
|
42
41
|
* concurrently. Each retry fetches latest main and rebases.
|
|
43
42
|
*/
|
|
44
|
-
export
|
|
45
|
-
/**
|
|
46
|
-
* Maximum retry attempts for push when origin/main advances
|
|
47
|
-
*
|
|
48
|
-
* WU-1179: When push fails due to race condition (origin advanced while we
|
|
49
|
-
* were working), rollback local main to origin/main and retry.
|
|
50
|
-
* Each retry: fetch -> rebase temp branch -> re-merge -> push.
|
|
51
|
-
*
|
|
52
|
-
* @deprecated Use DEFAULT_PUSH_RETRY_CONFIG.retries instead (WU-1332)
|
|
53
|
-
*/
|
|
54
|
-
export const MAX_PUSH_RETRIES = 3;
|
|
55
|
-
/**
|
|
56
|
-
* WU-1332: Default push retry configuration
|
|
57
|
-
*
|
|
58
|
-
* Provides sensible defaults for micro-worktree push operations.
|
|
59
|
-
* Can be overridden via .lumenflow.config.yaml git.push_retry section.
|
|
60
|
-
*/
|
|
61
|
-
export const DEFAULT_PUSH_RETRY_CONFIG = {
|
|
62
|
-
enabled: true,
|
|
63
|
-
retries: 3,
|
|
64
|
-
min_delay_ms: 100,
|
|
65
|
-
max_delay_ms: 1000,
|
|
66
|
-
jitter: true,
|
|
67
|
-
};
|
|
68
|
-
/**
|
|
69
|
-
* Resolve effective push retry config from defaults + global config + operation override.
|
|
70
|
-
*
|
|
71
|
-
* Priority (lowest to highest):
|
|
72
|
-
* 1. DEFAULT_PUSH_RETRY_CONFIG
|
|
73
|
-
* 2. Global config from `.lumenflow.config.yaml` (`git.push_retry`)
|
|
74
|
-
* 3. Operation-specific override from caller
|
|
75
|
-
*/
|
|
76
|
-
export function resolvePushRetryConfig(globalConfig, operationOverride) {
|
|
77
|
-
return {
|
|
78
|
-
...DEFAULT_PUSH_RETRY_CONFIG,
|
|
79
|
-
...(globalConfig || {}),
|
|
80
|
-
...(operationOverride || {}),
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Environment variable name for LUMENFLOW_FORCE bypass
|
|
85
|
-
*
|
|
86
|
-
* WU-1081: Exported for use in micro-worktree push operations.
|
|
87
|
-
*/
|
|
88
|
-
export const LUMENFLOW_FORCE_ENV = 'LUMENFLOW_FORCE';
|
|
89
|
-
/**
|
|
90
|
-
* Environment variable name for LUMENFLOW_FORCE_REASON audit trail
|
|
91
|
-
*
|
|
92
|
-
* WU-1081: Exported for use in micro-worktree push operations.
|
|
93
|
-
*/
|
|
94
|
-
export const LUMENFLOW_FORCE_REASON_ENV = 'LUMENFLOW_FORCE_REASON';
|
|
95
|
-
/**
|
|
96
|
-
* Environment variable name for LUMENFLOW_WU_TOOL
|
|
97
|
-
*
|
|
98
|
-
* WU-1365: Exported for use by CLI commands that use micro-worktree operations.
|
|
99
|
-
* The pre-push hook checks this env var to allow micro-worktree pushes to main.
|
|
100
|
-
* Valid values are: wu-create, wu-edit, wu-done, wu-delete, wu-claim, wu-block,
|
|
101
|
-
* wu-unblock, initiative-create, initiative-edit, release, lumenflow-upgrade
|
|
102
|
-
*/
|
|
103
|
-
export const LUMENFLOW_WU_TOOL_ENV = 'LUMENFLOW_WU_TOOL';
|
|
104
|
-
/**
|
|
105
|
-
* Default log prefix for micro-worktree operations
|
|
106
|
-
*
|
|
107
|
-
* Extracted to constant to satisfy sonarjs/no-duplicate-string rule.
|
|
108
|
-
*/
|
|
109
|
-
export const DEFAULT_LOG_PREFIX = '[micro-wt]';
|
|
110
|
-
/**
|
|
111
|
-
* WU-1336: Pattern to detect retry exhaustion errors from error messages
|
|
112
|
-
*
|
|
113
|
-
* Matches error messages like "Push failed after N attempts"
|
|
114
|
-
* Used for backwards compatibility with legacy error messages.
|
|
115
|
-
*/
|
|
116
|
-
const RETRY_EXHAUSTION_PATTERN = /Push failed after \d+ attempts/;
|
|
117
|
-
/**
|
|
118
|
-
* WU-1336: Typed error for retry exhaustion in micro-worktree operations
|
|
119
|
-
*
|
|
120
|
-
* Thrown when push retries are exhausted due to race conditions with parallel agents.
|
|
121
|
-
* CLI commands should use `isRetryExhaustionError` to detect this error type and
|
|
122
|
-
* `formatRetryExhaustionError` to generate actionable user-facing messages.
|
|
123
|
-
*
|
|
124
|
-
* This centralizes retry exhaustion handling so CLI commands do not need to
|
|
125
|
-
* duplicate detection logic or error formatting.
|
|
126
|
-
*
|
|
127
|
-
* @example
|
|
128
|
-
* ```typescript
|
|
129
|
-
* import { RetryExhaustionError, isRetryExhaustionError, formatRetryExhaustionError } from '@lumenflow/core';
|
|
130
|
-
*
|
|
131
|
-
* try {
|
|
132
|
-
* await withMicroWorktree({ ... });
|
|
133
|
-
* } catch (error) {
|
|
134
|
-
* if (isRetryExhaustionError(error)) {
|
|
135
|
-
* console.error(formatRetryExhaustionError(error, { command: 'pnpm initiative:add-wu ...' }));
|
|
136
|
-
* } else {
|
|
137
|
-
* throw error;
|
|
138
|
-
* }
|
|
139
|
-
* }
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
export class RetryExhaustionError extends Error {
|
|
143
|
-
/** Name of the error class (for instanceof checks across module boundaries) */
|
|
144
|
-
name = 'RetryExhaustionError';
|
|
145
|
-
/** Operation that was being performed (e.g., 'initiative-add-wu') */
|
|
146
|
-
operation;
|
|
147
|
-
/** Number of retry attempts that were exhausted */
|
|
148
|
-
retries;
|
|
149
|
-
constructor(operation, retries) {
|
|
150
|
-
super(`Push failed after ${retries} attempts. ` +
|
|
151
|
-
`Origin main may have significant traffic during ${operation}.`);
|
|
152
|
-
this.operation = operation;
|
|
153
|
-
this.retries = retries;
|
|
154
|
-
// Maintain proper prototype chain for instanceof checks
|
|
155
|
-
Object.setPrototypeOf(this, RetryExhaustionError.prototype);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* WU-1336: Type guard to check if an error is a retry exhaustion error
|
|
160
|
-
*
|
|
161
|
-
* Detects both the typed `RetryExhaustionError` class and legacy error messages
|
|
162
|
-
* that match the "Push failed after N attempts" pattern.
|
|
163
|
-
*
|
|
164
|
-
* @param {unknown} error - Error to check
|
|
165
|
-
* @returns {boolean} True if this is a retry exhaustion error
|
|
166
|
-
*
|
|
167
|
-
* @example
|
|
168
|
-
* ```typescript
|
|
169
|
-
* if (isRetryExhaustionError(error)) {
|
|
170
|
-
* // Handle retry exhaustion
|
|
171
|
-
* }
|
|
172
|
-
* ```
|
|
173
|
-
*/
|
|
174
|
-
export function isRetryExhaustionError(error) {
|
|
175
|
-
if (error instanceof RetryExhaustionError) {
|
|
176
|
-
return true;
|
|
177
|
-
}
|
|
178
|
-
// Also detect legacy error messages for backwards compatibility
|
|
179
|
-
if (error instanceof Error) {
|
|
180
|
-
return RETRY_EXHAUSTION_PATTERN.test(error.message);
|
|
181
|
-
}
|
|
182
|
-
return false;
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* WU-1336: Format retry exhaustion error with actionable next steps
|
|
186
|
-
*
|
|
187
|
-
* When push retries are exhausted, provides clear guidance on how to proceed.
|
|
188
|
-
* CLI commands should use this instead of duplicating error formatting logic.
|
|
189
|
-
*
|
|
190
|
-
* @param {Error} error - The retry exhaustion error
|
|
191
|
-
* @param {FormatRetryExhaustionOptions} options - Formatting options
|
|
192
|
-
* @returns {string} Formatted error message with next steps
|
|
193
|
-
*
|
|
194
|
-
* @example
|
|
195
|
-
* ```typescript
|
|
196
|
-
* const message = formatRetryExhaustionError(error, {
|
|
197
|
-
* command: 'pnpm initiative:add-wu --wu WU-123 --initiative INIT-001',
|
|
198
|
-
* });
|
|
199
|
-
* console.error(message);
|
|
200
|
-
* ```
|
|
201
|
-
*/
|
|
202
|
-
export function formatRetryExhaustionError(error, options) {
|
|
203
|
-
const { command } = options;
|
|
204
|
-
return (`${error.message}\n\n` +
|
|
205
|
-
`Next steps:\n` +
|
|
206
|
-
` 1. Wait a few seconds and retry the operation:\n` +
|
|
207
|
-
` ${command}\n` +
|
|
208
|
-
` 2. If the issue persists, check if another agent is rapidly pushing changes\n` +
|
|
209
|
-
` 3. Consider increasing git.push_retry.retries in .lumenflow.config.yaml`);
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* WU-1308: Check if remote operations should be skipped based on git.requireRemote config
|
|
213
|
-
*
|
|
214
|
-
* When git.requireRemote is false, micro-worktree operations skip:
|
|
215
|
-
* - Fetching origin/main before starting
|
|
216
|
-
* - Pushing to origin/main after completion
|
|
217
|
-
*
|
|
218
|
-
* This enables local-only development without a remote repository.
|
|
219
|
-
*
|
|
220
|
-
* @returns {boolean} True if remote operations should be skipped (requireRemote=false)
|
|
221
|
-
*
|
|
222
|
-
* @example
|
|
223
|
-
* ```yaml
|
|
224
|
-
* # .lumenflow.config.yaml
|
|
225
|
-
* git:
|
|
226
|
-
* requireRemote: false # Enable local-only mode
|
|
227
|
-
* ```
|
|
228
|
-
*/
|
|
229
|
-
export function shouldSkipRemoteOperations() {
|
|
230
|
-
const config = getConfig();
|
|
231
|
-
// Default is requireRemote=true, so only skip if explicitly set to false
|
|
232
|
-
return config.git.requireRemote === false;
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Temp branch prefix for micro-worktree operations
|
|
236
|
-
*
|
|
237
|
-
* @param {string} operation - Operation name (e.g., 'wu-create', 'wu-edit')
|
|
238
|
-
* @param {string} id - WU ID (e.g., 'wu-123')
|
|
239
|
-
* @returns {string} Temp branch name (e.g., 'tmp/wu-create/wu-123')
|
|
240
|
-
*/
|
|
241
|
-
export function getTempBranchName(operation, id) {
|
|
242
|
-
return `${BRANCHES.TEMP_PREFIX}${operation}/${id.toLowerCase()}`;
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Create micro-worktree in /tmp directory
|
|
246
|
-
*
|
|
247
|
-
* @param {string} prefix - Directory prefix (e.g., 'wu-create-', 'wu-edit-')
|
|
248
|
-
* @returns {string} Path to created micro-worktree directory
|
|
249
|
-
*/
|
|
250
|
-
export function createMicroWorktreeDir(prefix) {
|
|
251
|
-
return mkdtempSync(join(tmpdir(), prefix));
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Parse git worktree list output to find worktrees by branch
|
|
255
|
-
*
|
|
256
|
-
* WU-2237: Helper to parse porcelain format output from `git worktree list --porcelain`
|
|
257
|
-
*
|
|
258
|
-
* @param {string} worktreeListOutput - Output from git worktree list --porcelain
|
|
259
|
-
* @param {string} branchName - Branch name to search for (e.g., 'tmp/wu-create/wu-123')
|
|
260
|
-
* @returns {string|null} Worktree path if found, null otherwise
|
|
261
|
-
*/
|
|
262
|
-
export function findWorktreeByBranch(worktreeListOutput, branchName) {
|
|
263
|
-
const branchRef = `refs/heads/${branchName}`;
|
|
264
|
-
const lines = worktreeListOutput.split('\n');
|
|
265
|
-
let currentWorktreePath = null;
|
|
266
|
-
for (const line of lines) {
|
|
267
|
-
if (line.startsWith('worktree ')) {
|
|
268
|
-
currentWorktreePath = line.substring('worktree '.length);
|
|
269
|
-
}
|
|
270
|
-
else if (line.startsWith('branch ') && line.substring('branch '.length) === branchRef) {
|
|
271
|
-
return currentWorktreePath;
|
|
272
|
-
}
|
|
273
|
-
else if (line === '') {
|
|
274
|
-
currentWorktreePath = null;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
return null;
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Clean up orphaned micro-worktree and temp branch from a previous interrupted operation
|
|
281
|
-
*
|
|
282
|
-
* WU-2237: Before creating a new micro-worktree, detect and clean any existing temp
|
|
283
|
-
* branch/worktree for the same operation+WU ID. This handles scenarios where:
|
|
284
|
-
* - A previous wu:create/wu:edit was interrupted (timeout/crash)
|
|
285
|
-
* - The temp branch and /tmp worktree were left behind
|
|
286
|
-
* - A subsequent operation would fail with 'branch already exists'
|
|
287
|
-
*
|
|
288
|
-
* This function is idempotent - safe to call even when no orphans exist.
|
|
289
|
-
*
|
|
290
|
-
* @param {string} operation - Operation name (e.g., 'wu-create', 'wu-edit')
|
|
291
|
-
* @param {string} id - WU ID (e.g., 'WU-123')
|
|
292
|
-
* @param {Object} gitAdapter - GitAdapter instance to use (for testability)
|
|
293
|
-
* @param {string} logPrefix - Log prefix for console output
|
|
294
|
-
* @returns {Promise<{cleanedWorktree: boolean, cleanedBranch: boolean}>} Cleanup status
|
|
295
|
-
*/
|
|
296
|
-
export async function cleanupOrphanedMicroWorktree(operation, id, gitAdapter, logPrefix = DEFAULT_LOG_PREFIX) {
|
|
297
|
-
const tempBranchName = getTempBranchName(operation, id);
|
|
298
|
-
let cleanedWorktree = false;
|
|
299
|
-
let cleanedBranch = false;
|
|
300
|
-
// Step 1: Check git worktree list for any worktree on this temp branch
|
|
301
|
-
try {
|
|
302
|
-
const worktreeListOutput = await gitAdapter.worktreeList();
|
|
303
|
-
const orphanWorktreePath = findWorktreeByBranch(worktreeListOutput, tempBranchName);
|
|
304
|
-
if (orphanWorktreePath) {
|
|
305
|
-
console.log(`${logPrefix} Found orphaned worktree for ${tempBranchName}: ${orphanWorktreePath}`);
|
|
306
|
-
try {
|
|
307
|
-
await gitAdapter.worktreeRemove(orphanWorktreePath, { force: true });
|
|
308
|
-
console.log(`${logPrefix} ✅ Removed orphaned worktree: ${orphanWorktreePath}`);
|
|
309
|
-
cleanedWorktree = true;
|
|
310
|
-
}
|
|
311
|
-
catch (err) {
|
|
312
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
313
|
-
console.warn(`${logPrefix} ⚠️ Could not remove orphaned worktree: ${errMsg}`);
|
|
314
|
-
// Try filesystem cleanup as fallback
|
|
315
|
-
tryFilesystemCleanup(orphanWorktreePath);
|
|
316
|
-
cleanedWorktree = true;
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
catch (err) {
|
|
321
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
322
|
-
console.warn(`${logPrefix} ⚠️ Could not check worktree list: ${errMsg}`);
|
|
323
|
-
}
|
|
324
|
-
// Step 2: Check if the temp branch exists and delete it
|
|
325
|
-
try {
|
|
326
|
-
const branchExists = await gitAdapter.branchExists(tempBranchName);
|
|
327
|
-
if (branchExists) {
|
|
328
|
-
console.log(`${logPrefix} Found orphaned temp branch: ${tempBranchName}`);
|
|
329
|
-
await gitAdapter.deleteBranch(tempBranchName, { force: true });
|
|
330
|
-
console.log(`${logPrefix} ✅ Deleted orphaned temp branch: ${tempBranchName}`);
|
|
331
|
-
cleanedBranch = true;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
catch (err) {
|
|
335
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
336
|
-
console.warn(`${logPrefix} ⚠️ Could not delete orphaned branch: ${errMsg}`);
|
|
337
|
-
}
|
|
338
|
-
return { cleanedWorktree, cleanedBranch };
|
|
339
|
-
}
|
|
340
|
-
/**
|
|
341
|
-
* Try to remove a worktree path via filesystem as fallback
|
|
342
|
-
*
|
|
343
|
-
* WU-2237: Extracted helper to reduce cognitive complexity.
|
|
344
|
-
*
|
|
345
|
-
* @param {string} worktreePath - Path to remove
|
|
346
|
-
*/
|
|
347
|
-
function tryFilesystemCleanup(worktreePath) {
|
|
348
|
-
try {
|
|
349
|
-
if (existsSync(worktreePath)) {
|
|
350
|
-
rmSync(worktreePath, { recursive: true, force: true });
|
|
351
|
-
}
|
|
352
|
-
}
|
|
353
|
-
catch {
|
|
354
|
-
// Ignore filesystem cleanup errors
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
/**
|
|
358
|
-
* Remove a worktree using git, with filesystem fallback
|
|
359
|
-
*
|
|
360
|
-
* WU-2237: Extracted helper to reduce cognitive complexity.
|
|
361
|
-
*
|
|
362
|
-
* @param {Object} gitAdapter - Git adapter instance
|
|
363
|
-
* @param {string} worktreePath - Path to worktree
|
|
364
|
-
* @param {string} logPrefix - Log prefix
|
|
365
|
-
* @param {string} [contextLabel] - Optional label for logging (e.g., 'registered')
|
|
366
|
-
*/
|
|
367
|
-
async function removeWorktreeSafe(gitAdapter, worktreePath, logPrefix, contextLabel = '') {
|
|
368
|
-
const label = contextLabel ? ` ${contextLabel}` : '';
|
|
369
|
-
try {
|
|
370
|
-
await gitAdapter.worktreeRemove(worktreePath, { force: true });
|
|
371
|
-
if (contextLabel) {
|
|
372
|
-
console.log(`${logPrefix} ✅ Removed${label} worktree: ${worktreePath}`);
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
catch (err) {
|
|
376
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
377
|
-
console.warn(`${logPrefix} ⚠️ Could not remove${label} worktree: ${errMsg}`);
|
|
378
|
-
tryFilesystemCleanup(worktreePath);
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
/**
|
|
382
|
-
* Cleanup micro-worktree and temp branch
|
|
383
|
-
*
|
|
384
|
-
* Runs even on failure to prevent orphaned resources.
|
|
385
|
-
* Safe to call multiple times (idempotent).
|
|
386
|
-
*
|
|
387
|
-
* WU-2237: Enhanced to also check git worktree list for registered worktrees
|
|
388
|
-
* on the temp branch, in case the worktree path differs from what was expected.
|
|
389
|
-
*
|
|
390
|
-
* @param {string} worktreePath - Path to micro-worktree
|
|
391
|
-
* @param {string} branchName - Temp branch name
|
|
392
|
-
* @param {string} logPrefix - Log prefix for console output
|
|
393
|
-
*/
|
|
394
|
-
export async function cleanupMicroWorktree(worktreePath, branchName, logPrefix = DEFAULT_LOG_PREFIX) {
|
|
395
|
-
console.log(`${logPrefix} Cleaning up micro-worktree...`);
|
|
396
|
-
const mainGit = getGitForCwd();
|
|
397
|
-
// Remove the known worktree path first (must be done before deleting branch)
|
|
398
|
-
if (existsSync(worktreePath)) {
|
|
399
|
-
await removeWorktreeSafe(mainGit, worktreePath, logPrefix);
|
|
400
|
-
}
|
|
401
|
-
// WU-2237: Also check git worktree list for any registered worktrees on this branch
|
|
402
|
-
await cleanupRegisteredWorktreeForBranch(mainGit, branchName, worktreePath, logPrefix);
|
|
403
|
-
// Delete temp branch
|
|
404
|
-
await deleteBranchSafe(mainGit, branchName, logPrefix);
|
|
405
|
-
console.log(`${logPrefix} ✅ Cleanup complete`);
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
|
-
* Clean up any registered worktree for a branch that differs from the expected path
|
|
409
|
-
*
|
|
410
|
-
* WU-2237: Extracted helper to reduce cognitive complexity.
|
|
411
|
-
*
|
|
412
|
-
* @param {Object} gitAdapter - Git adapter instance
|
|
413
|
-
* @param {string} branchName - Branch name to search for
|
|
414
|
-
* @param {string} expectedPath - Expected worktree path (skip if matches)
|
|
415
|
-
* @param {string} logPrefix - Log prefix
|
|
416
|
-
*/
|
|
417
|
-
async function cleanupRegisteredWorktreeForBranch(gitAdapter, branchName, expectedPath, logPrefix) {
|
|
418
|
-
try {
|
|
419
|
-
const worktreeListOutput = await gitAdapter.worktreeList();
|
|
420
|
-
const registeredPath = findWorktreeByBranch(worktreeListOutput, branchName);
|
|
421
|
-
if (registeredPath && registeredPath !== expectedPath) {
|
|
422
|
-
console.log(`${logPrefix} Found additional registered worktree: ${registeredPath}`);
|
|
423
|
-
await removeWorktreeSafe(gitAdapter, registeredPath, logPrefix, 'registered');
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
catch (err) {
|
|
427
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
428
|
-
console.warn(`${logPrefix} ⚠️ Could not check worktree list: ${errMsg}`);
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
/**
|
|
432
|
-
* Delete a branch safely, ignoring errors
|
|
433
|
-
*
|
|
434
|
-
* WU-2237: Extracted helper to reduce cognitive complexity.
|
|
435
|
-
*
|
|
436
|
-
* @param {Object} gitAdapter - Git adapter instance
|
|
437
|
-
* @param {string} branchName - Branch to delete
|
|
438
|
-
* @param {string} logPrefix - Log prefix
|
|
439
|
-
*/
|
|
440
|
-
async function deleteBranchSafe(gitAdapter, branchName, logPrefix) {
|
|
441
|
-
try {
|
|
442
|
-
const branchExists = await gitAdapter.branchExists(branchName);
|
|
443
|
-
if (branchExists) {
|
|
444
|
-
await gitAdapter.deleteBranch(branchName, { force: true });
|
|
445
|
-
}
|
|
446
|
-
}
|
|
447
|
-
catch (err) {
|
|
448
|
-
const errMsg = err instanceof Error ? err.message : String(err);
|
|
449
|
-
console.warn(`${logPrefix} ⚠️ Could not delete branch: ${errMsg}`);
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
/**
|
|
453
|
-
* Stage changes including deletions in micro-worktree
|
|
454
|
-
*
|
|
455
|
-
* WU-1813: Uses addWithDeletions to properly stage tracked file deletions.
|
|
456
|
-
* This replaces the previous pattern of using gitWorktree.add(files) which
|
|
457
|
-
* could miss deletions when files were removed.
|
|
458
|
-
*
|
|
459
|
-
* @param {Object} gitWorktree - GitAdapter instance for the worktree
|
|
460
|
-
* @param {string[]|undefined} files - Files to stage (undefined/empty = stage all)
|
|
461
|
-
* @returns {Promise<void>}
|
|
462
|
-
*/
|
|
43
|
+
export { MAX_MERGE_RETRIES, MAX_PUSH_RETRIES, DEFAULT_PUSH_RETRY_CONFIG, resolvePushRetryConfig, LUMENFLOW_FORCE_ENV, LUMENFLOW_FORCE_REASON_ENV, LUMENFLOW_WU_TOOL_ENV, DEFAULT_LOG_PREFIX, RetryExhaustionError, isRetryExhaustionError, formatRetryExhaustionError, shouldSkipRemoteOperations, getTempBranchName, createMicroWorktreeDir, findWorktreeByBranch, cleanupOrphanedMicroWorktree, cleanupMicroWorktree, pushRefspecWithForce, pushRefspecWithRetry, };
|
|
463
44
|
export async function stageChangesWithDeletions(gitWorktree, files) {
|
|
464
45
|
// Normalise undefined/null to empty array for addWithDeletions
|
|
465
46
|
const filesToStage = files || [];
|
|
@@ -777,125 +358,6 @@ export async function pushWithRetryConfig(mainGit, worktreeGit, remote, branch,
|
|
|
777
358
|
* @returns {Promise<void>}
|
|
778
359
|
* @throws {Error} If push fails (env vars still restored)
|
|
779
360
|
*/
|
|
780
|
-
export async function pushRefspecWithForce(gitAdapter, remote, localRef, remoteRef, reason) {
|
|
781
|
-
// Save original env values
|
|
782
|
-
const originalForce = process.env[LUMENFLOW_FORCE_ENV];
|
|
783
|
-
const originalReason = process.env[LUMENFLOW_FORCE_REASON_ENV];
|
|
784
|
-
try {
|
|
785
|
-
// Set LUMENFLOW_FORCE for the push
|
|
786
|
-
process.env[LUMENFLOW_FORCE_ENV] = '1';
|
|
787
|
-
process.env[LUMENFLOW_FORCE_REASON_ENV] = reason;
|
|
788
|
-
// Perform the push
|
|
789
|
-
await gitAdapter.pushRefspec(remote, localRef, remoteRef);
|
|
790
|
-
}
|
|
791
|
-
finally {
|
|
792
|
-
// Restore original env values
|
|
793
|
-
if (originalForce === undefined) {
|
|
794
|
-
Reflect.deleteProperty(process.env, LUMENFLOW_FORCE_ENV);
|
|
795
|
-
}
|
|
796
|
-
else {
|
|
797
|
-
process.env[LUMENFLOW_FORCE_ENV] = originalForce;
|
|
798
|
-
}
|
|
799
|
-
if (originalReason === undefined) {
|
|
800
|
-
Reflect.deleteProperty(process.env, LUMENFLOW_FORCE_REASON_ENV);
|
|
801
|
-
}
|
|
802
|
-
else {
|
|
803
|
-
process.env[LUMENFLOW_FORCE_REASON_ENV] = originalReason;
|
|
804
|
-
}
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
|
-
/**
|
|
808
|
-
* WU-1337: Push using refspec with LUMENFLOW_FORCE and retry logic
|
|
809
|
-
*
|
|
810
|
-
* Enhanced version of pushRefspecWithForce that adds retry with rebase
|
|
811
|
-
* on non-fast-forward errors. Uses p-retry for exponential backoff and
|
|
812
|
-
* respects git.push_retry configuration.
|
|
813
|
-
*
|
|
814
|
-
* On each retry:
|
|
815
|
-
* 1. Fetch origin/main to get latest state
|
|
816
|
-
* 2. Rebase the temp branch onto the updated main
|
|
817
|
-
* 3. Retry the push with LUMENFLOW_FORCE
|
|
818
|
-
*
|
|
819
|
-
* This is used by pushOnly mode in withMicroWorktree to handle race conditions
|
|
820
|
-
* when multiple agents are pushing to origin/main concurrently.
|
|
821
|
-
*
|
|
822
|
-
* @param {GitAdapter} gitWorktree - GitAdapter instance for the worktree (for rebase)
|
|
823
|
-
* @param {GitAdapter} mainGit - GitAdapter instance for main checkout (for fetch)
|
|
824
|
-
* @param {string} remote - Remote name (e.g., 'origin')
|
|
825
|
-
* @param {string} localRef - Local ref to push (e.g., 'tmp/wu-claim/wu-123')
|
|
826
|
-
* @param {string} remoteRef - Remote ref to update (e.g., 'main')
|
|
827
|
-
* @param {string} reason - Audit reason for the LUMENFLOW_FORCE bypass
|
|
828
|
-
* @param {string} logPrefix - Log prefix for console output
|
|
829
|
-
* @param {PushRetryConfig} config - Push retry configuration
|
|
830
|
-
* @returns {Promise<void>}
|
|
831
|
-
* @throws {RetryExhaustionError} If push fails after all retries
|
|
832
|
-
*/
|
|
833
|
-
export async function pushRefspecWithRetry(gitWorktree, mainGit, remote, localRef, remoteRef, reason, logPrefix = DEFAULT_LOG_PREFIX, config = DEFAULT_PUSH_RETRY_CONFIG) {
|
|
834
|
-
// If retry is disabled, just try once and throw on failure
|
|
835
|
-
if (!config.enabled) {
|
|
836
|
-
console.log(`${logPrefix} Pushing to ${remote}/${remoteRef} (push-only, retry disabled)...`);
|
|
837
|
-
await pushRefspecWithForce(gitWorktree, remote, localRef, remoteRef, reason);
|
|
838
|
-
console.log(`${logPrefix} ✅ Pushed to ${remote}/${remoteRef}`);
|
|
839
|
-
return;
|
|
840
|
-
}
|
|
841
|
-
let attemptNumber = 0;
|
|
842
|
-
await pRetry(async () => {
|
|
843
|
-
attemptNumber++;
|
|
844
|
-
console.log(`${logPrefix} Pushing to ${remote}/${remoteRef} (push-only, attempt ${attemptNumber}/${config.retries})...`);
|
|
845
|
-
try {
|
|
846
|
-
await pushRefspecWithForce(gitWorktree, remote, localRef, remoteRef, reason);
|
|
847
|
-
console.log(`${logPrefix} ✅ Pushed to ${remote}/${remoteRef}`);
|
|
848
|
-
}
|
|
849
|
-
catch (pushErr) {
|
|
850
|
-
console.log(`${logPrefix} ⚠️ Push failed (origin moved). Fetching and rebasing before retry...`);
|
|
851
|
-
// Fetch latest origin/main
|
|
852
|
-
console.log(`${logPrefix} Fetching ${remote}/${remoteRef}...`);
|
|
853
|
-
await mainGit.fetch(remote, remoteRef);
|
|
854
|
-
// Rebase temp branch onto updated remote-tracking ref.
|
|
855
|
-
// In pushOnly mode, local `main` is intentionally not updated (WU-1435),
|
|
856
|
-
// so rebasing onto `main` will not make progress after a successful push.
|
|
857
|
-
const remoteTrackingRef = `${remote}/${remoteRef}`;
|
|
858
|
-
console.log(`${logPrefix} Rebasing temp branch onto ${remoteTrackingRef}...`);
|
|
859
|
-
await gitWorktree.rebase(remoteTrackingRef);
|
|
860
|
-
// Re-throw to trigger p-retry
|
|
861
|
-
throw pushErr;
|
|
862
|
-
}
|
|
863
|
-
}, {
|
|
864
|
-
retries: config.retries - 1, // p-retry counts retries after first attempt
|
|
865
|
-
minTimeout: config.min_delay_ms,
|
|
866
|
-
maxTimeout: config.max_delay_ms,
|
|
867
|
-
randomize: config.jitter,
|
|
868
|
-
onFailedAttempt: () => {
|
|
869
|
-
// Logging is handled in the try/catch above
|
|
870
|
-
},
|
|
871
|
-
}).catch(() => {
|
|
872
|
-
// p-retry exhausted all retries, throw typed error
|
|
873
|
-
throw new RetryExhaustionError('push-only', config.retries);
|
|
874
|
-
});
|
|
875
|
-
}
|
|
876
|
-
/**
|
|
877
|
-
* Execute an operation in a micro-worktree with full isolation
|
|
878
|
-
*
|
|
879
|
-
* This is the main entry point for micro-worktree operations.
|
|
880
|
-
* Handles the full lifecycle: create temp branch, create worktree,
|
|
881
|
-
* execute operation, merge, push, and cleanup.
|
|
882
|
-
*
|
|
883
|
-
* WU-1435: Added pushOnly option to keep local main pristine.
|
|
884
|
-
* WU-2237: Added pre-creation cleanup of orphaned temp branches/worktrees.
|
|
885
|
-
* WU-1337: Push-only path now uses retry with rebase.
|
|
886
|
-
*
|
|
887
|
-
* @param {Object} options - Options for the operation
|
|
888
|
-
* @param {string} options.operation - Operation name (e.g., 'wu-create', 'wu-edit')
|
|
889
|
-
* @param {string} options.id - WU ID (e.g., 'WU-123')
|
|
890
|
-
* @param {string} options.logPrefix - Log prefix for console output
|
|
891
|
-
* @param {boolean} [options.pushOnly=false] - Skip local main merge, push directly to origin/main
|
|
892
|
-
* @param {Object} [options.pushRetryOverride] - Optional push retry overrides for this operation
|
|
893
|
-
* @param {Function} options.execute - Async function to execute in micro-worktree
|
|
894
|
-
* Receives: { worktreePath: string, gitWorktree: GitAdapter }
|
|
895
|
-
* Should return: { commitMessage: string, files: string[] }
|
|
896
|
-
* @returns {Promise<Object>} Result with ref property for worktree creation
|
|
897
|
-
* @throws {Error} If any step fails (cleanup still runs)
|
|
898
|
-
*/
|
|
899
361
|
export async function withMicroWorktree(options) {
|
|
900
362
|
const { operation, id, logPrefix = `[${operation}]`, execute, pushOnly = false, pushRetryOverride, } = options;
|
|
901
363
|
const mainGit = getGitForCwd();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"micro-worktree.js","sourceRoot":"","sources":["../src/micro-worktree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"micro-worktree.js","sourceRoot":"","sources":["../src/micro-worktree.ts"],"names":[],"mappings":"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"}
|