@cleocode/worktree 2026.11.2-canary.1 → 2026.11.2-canary.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/.source-stamp.json +1 -1
- package/dist/napi-binding.d.ts +26 -1
- package/dist/napi-binding.d.ts.map +1 -1
- package/dist/napi-binding.js +19 -0
- package/dist/napi-binding.js.map +1 -1
- package/dist/worktree-dispose.d.ts +2 -2
- package/dist/worktree-dispose.js +2 -2
- package/dist/worktree-lock.d.ts +23 -18
- package/dist/worktree-lock.d.ts.map +1 -1
- package/dist/worktree-lock.js +228 -161
- package/dist/worktree-lock.js.map +1 -1
- package/native/worktree-napi.darwin-arm64.node +0 -0
- package/native/worktree-napi.linux-arm64-gnu.node +0 -0
- package/native/worktree-napi.linux-x64-gnu.node +0 -0
- package/native/worktree-napi.win32-x64-msvc.node +0 -0
- package/package.json +4 -4
package/dist/.source-stamp.json
CHANGED
package/dist/napi-binding.d.ts
CHANGED
|
@@ -176,6 +176,17 @@ interface IntegrateResultNapi {
|
|
|
176
176
|
rebased: boolean;
|
|
177
177
|
error?: string;
|
|
178
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Handle of an exclusive OS advisory lock returned by the napi `tryLockFile`
|
|
181
|
+
* binding (T14491). The OS releases the lock on {@link FileLockHandleNapi.release},
|
|
182
|
+
* when the handle is garbage-collected, or when the process exits.
|
|
183
|
+
*/
|
|
184
|
+
interface FileLockHandleNapi {
|
|
185
|
+
/** Release the lock (idempotent). */
|
|
186
|
+
release(): void;
|
|
187
|
+
/** True while the handle still holds the lock. */
|
|
188
|
+
readonly held: boolean;
|
|
189
|
+
}
|
|
179
190
|
/**
|
|
180
191
|
* Shape of the native module exported by the bundled Node-API binding.
|
|
181
192
|
*
|
|
@@ -195,6 +206,8 @@ interface WorktreeNapiModule {
|
|
|
195
206
|
removeDir(opts: RemoveDirOptsNapi): RemoveDirResultNapi;
|
|
196
207
|
provisionWorktree(opts: ProvisionOptsNapi): WorktreeHandleNapi;
|
|
197
208
|
integrateWorktree(opts: IntegrateOptsNapi): IntegrateResultNapi;
|
|
209
|
+
/** Absent from addons built before T14491; callers must fail closed. */
|
|
210
|
+
tryLockFile?: (path: string) => FileLockHandleNapi | null;
|
|
198
211
|
}
|
|
199
212
|
export declare const copyPathsParallel: WorktreeNapiModule['copyPathsParallel'];
|
|
200
213
|
export declare const destroyWorktree: WorktreeNapiModule['destroyWorktree'];
|
|
@@ -205,5 +218,17 @@ export declare const pruneWorktrees: WorktreeNapiModule['pruneWorktrees'];
|
|
|
205
218
|
export declare const removeDir: WorktreeNapiModule['removeDir'];
|
|
206
219
|
export declare const provisionWorktree: WorktreeNapiModule['provisionWorktree'];
|
|
207
220
|
export declare const integrateWorktree: WorktreeNapiModule['integrateWorktree'];
|
|
208
|
-
|
|
221
|
+
/**
|
|
222
|
+
* Try to take an exclusive OS advisory lock on `path` without blocking (T14491).
|
|
223
|
+
* The file is created when missing and is never deleted.
|
|
224
|
+
*
|
|
225
|
+
* Fails closed: an addon without the binding (one built before T14491, or the
|
|
226
|
+
* test fallback) throws instead of reporting the lock free.
|
|
227
|
+
*
|
|
228
|
+
* @param path - Absolute path of the lock file; its directory must exist.
|
|
229
|
+
* @returns The held lock, or `null` when another open file holds it.
|
|
230
|
+
* @throws When the binding is missing or the OS cannot open or lock the file.
|
|
231
|
+
*/
|
|
232
|
+
export declare function tryLockFile(path: string): FileLockHandleNapi | null;
|
|
233
|
+
export type { CopyOptsNapi, CopyResultNapi, DestroyOptsNapi, DestroyResultNapi, FileLockHandleNapi, IncludePatternNapi, IntegrateOptsNapi, IntegrateResultNapi, ListOptsNapi, ProvisionOptsNapi, PruneCandidateNapi, PruneOptsNapi, PrunePlanNapi, RemoveDirOptsNapi, RemoveDirResultNapi, WorktreeHandleNapi, WorktreeInfoNapi, };
|
|
209
234
|
//# sourceMappingURL=napi-binding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"napi-binding.d.ts","sourceRoot":"","sources":["../src/napi-binding.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"napi-binding.d.ts","sourceRoot":"","sources":["../src/napi-binding.ts"],"names":[],"mappings":"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"}
|
package/dist/napi-binding.js
CHANGED
|
@@ -255,4 +255,23 @@ export const pruneWorktrees = (opts) => getNative().pruneWorktrees(opts);
|
|
|
255
255
|
export const removeDir = (opts) => getNative().removeDir(opts);
|
|
256
256
|
export const provisionWorktree = (opts) => getNative().provisionWorktree(opts);
|
|
257
257
|
export const integrateWorktree = (opts) => getNative().integrateWorktree(opts);
|
|
258
|
+
/**
|
|
259
|
+
* Try to take an exclusive OS advisory lock on `path` without blocking (T14491).
|
|
260
|
+
* The file is created when missing and is never deleted.
|
|
261
|
+
*
|
|
262
|
+
* Fails closed: an addon without the binding (one built before T14491, or the
|
|
263
|
+
* test fallback) throws instead of reporting the lock free.
|
|
264
|
+
*
|
|
265
|
+
* @param path - Absolute path of the lock file; its directory must exist.
|
|
266
|
+
* @returns The held lock, or `null` when another open file holds it.
|
|
267
|
+
* @throws When the binding is missing or the OS cannot open or lock the file.
|
|
268
|
+
*/
|
|
269
|
+
export function tryLockFile(path) {
|
|
270
|
+
const native = getNative();
|
|
271
|
+
if (typeof native.tryLockFile !== 'function') {
|
|
272
|
+
throw new Error('@cleocode/worktree: the loaded worktree-napi addon has no tryLockFile (built before T14491); ' +
|
|
273
|
+
'rebuild crates/worktree-napi or reinstall @cleocode/worktree. Refusing to lock without it.');
|
|
274
|
+
}
|
|
275
|
+
return native.tryLockFile(path);
|
|
276
|
+
}
|
|
258
277
|
//# sourceMappingURL=napi-binding.js.map
|
package/dist/napi-binding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"napi-binding.js","sourceRoot":"","sources":["../src/napi-binding.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"napi-binding.js","sourceRoot":"","sources":["../src/napi-binding.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,8 +176,8 @@ export interface DisposeOwnedWorktreeResult {
|
|
|
176
176
|
* (T14407). For a caller that created the worktree under the lock and must
|
|
177
177
|
* now remove it (a failed provision or spawn).
|
|
178
178
|
*
|
|
179
|
-
* Under the lock's own mutex
|
|
180
|
-
*
|
|
179
|
+
* Under the lock's own mutex (an OS lock on an open descriptor, freed by the OS
|
|
180
|
+
* if this process dies; T14491), held for the whole check and disposal, it checks that `lockToken` still
|
|
181
181
|
* holds the lock, that `worktreePath` is the task's canonical path and that
|
|
182
182
|
* the checkout there is on `branch`, then runs {@link disposeWorktree}'s proof
|
|
183
183
|
* and removal, then releases the lock with `lockToken`. A concurrent re-spawn
|
package/dist/worktree-dispose.js
CHANGED
|
@@ -538,8 +538,8 @@ function disposeChecked(opts, releaseLock) {
|
|
|
538
538
|
* (T14407). For a caller that created the worktree under the lock and must
|
|
539
539
|
* now remove it (a failed provision or spawn).
|
|
540
540
|
*
|
|
541
|
-
* Under the lock's own mutex
|
|
542
|
-
*
|
|
541
|
+
* Under the lock's own mutex (an OS lock on an open descriptor, freed by the OS
|
|
542
|
+
* if this process dies; T14491), held for the whole check and disposal, it checks that `lockToken` still
|
|
543
543
|
* holds the lock, that `worktreePath` is the task's canonical path and that
|
|
544
544
|
* the checkout there is on `branch`, then runs {@link disposeWorktree}'s proof
|
|
545
545
|
* and removal, then releases the lock with `lockToken`. A concurrent re-spawn
|
package/dist/worktree-lock.d.ts
CHANGED
|
@@ -35,11 +35,15 @@
|
|
|
35
35
|
* reclaimed on age. Anything else is `E_WORKTREE_LOCKED`.
|
|
36
36
|
* - **Re-entry:** the same caller (session id, agent id, owner pid and start
|
|
37
37
|
* time all equal) re-enters its own lock, so an orchestrator can retry.
|
|
38
|
-
* - **Every lock-file write is serialised** through a
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
38
|
+
* - **Every lock-file write is serialised** through a mutex: an exclusive OS
|
|
39
|
+
* advisory lock on an open descriptor of `<lock>.flock` (T14491, via the
|
|
40
|
+
* worktree-napi `tryLockFile` binding): publish, re-entry, reclaim,
|
|
41
|
+
* heartbeat, release and session-end release (T14407). A holder of the mutex
|
|
42
|
+
* (a dispose under {@link withWorktreeTaskLockHeld}) therefore sees no lock
|
|
43
|
+
* transition at all until it lets go. The OS frees the mutex when its holder
|
|
44
|
+
* exits, so it has no staleness test and is never broken. During the
|
|
45
|
+
* transition from CLEO v2026.11.1 it also takes that release's O_EXCL
|
|
46
|
+
* `<lock>.reclaim` mutex, so old and new processes exclude each other.
|
|
43
47
|
*
|
|
44
48
|
* @module worktree-lock
|
|
45
49
|
* @task T12506
|
|
@@ -179,21 +183,22 @@ export declare function isSameLockCaller(holder: WorktreeLockRecord, candidate:
|
|
|
179
183
|
*/
|
|
180
184
|
export declare function readWorktreeTaskLock(projectHash: string, taskId: string): WorktreeLockRecord | null;
|
|
181
185
|
/**
|
|
182
|
-
*
|
|
183
|
-
*
|
|
186
|
+
* Raised when a legacy breaker file names a dead holder: only a human (or the
|
|
187
|
+
* old release itself) may remove it, never this release (T14491).
|
|
184
188
|
*/
|
|
185
|
-
export
|
|
186
|
-
|
|
187
|
-
|
|
189
|
+
export declare class LegacyMutexStaleError extends Error {
|
|
190
|
+
/** Always `E_WORKTREE_LEGACY_MUTEX_STALE`. */
|
|
191
|
+
readonly code = "E_WORKTREE_LEGACY_MUTEX_STALE";
|
|
192
|
+
/** Absolute path of the abandoned file. */
|
|
193
|
+
readonly stalePath: string;
|
|
194
|
+
/** Remediation for the operator. */
|
|
195
|
+
readonly fix: string;
|
|
196
|
+
/**
|
|
197
|
+
* @param stalePath - The abandoned legacy file.
|
|
198
|
+
* @param pid - The dead holder's pid, when the file names one.
|
|
199
|
+
*/
|
|
200
|
+
constructor(stalePath: string, pid: number | null);
|
|
188
201
|
}
|
|
189
|
-
/**
|
|
190
|
-
* True when two identities name the same file (`dev` and `ino` compared as `bigint`).
|
|
191
|
-
*
|
|
192
|
-
* @param a - First identity.
|
|
193
|
-
* @param b - Second identity.
|
|
194
|
-
* @returns Whether both name one file.
|
|
195
|
-
*/
|
|
196
|
-
export declare function sameFileIdentity(a: FileIdentity, b: FileIdentity): boolean;
|
|
197
202
|
/** Outcome of {@link withWorktreeTaskLockHeld}. */
|
|
198
203
|
export type WorktreeTaskLockHold<T> = {
|
|
199
204
|
held: true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-lock.d.ts","sourceRoot":"","sources":["../src/worktree-lock.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"worktree-lock.d.ts","sourceRoot":"","sources":["../src/worktree-lock.ts"],"names":[],"mappings":"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"}
|
package/dist/worktree-lock.js
CHANGED
|
@@ -35,11 +35,15 @@
|
|
|
35
35
|
* reclaimed on age. Anything else is `E_WORKTREE_LOCKED`.
|
|
36
36
|
* - **Re-entry:** the same caller (session id, agent id, owner pid and start
|
|
37
37
|
* time all equal) re-enters its own lock, so an orchestrator can retry.
|
|
38
|
-
* - **Every lock-file write is serialised** through a
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
38
|
+
* - **Every lock-file write is serialised** through a mutex: an exclusive OS
|
|
39
|
+
* advisory lock on an open descriptor of `<lock>.flock` (T14491, via the
|
|
40
|
+
* worktree-napi `tryLockFile` binding): publish, re-entry, reclaim,
|
|
41
|
+
* heartbeat, release and session-end release (T14407). A holder of the mutex
|
|
42
|
+
* (a dispose under {@link withWorktreeTaskLockHeld}) therefore sees no lock
|
|
43
|
+
* transition at all until it lets go. The OS frees the mutex when its holder
|
|
44
|
+
* exits, so it has no staleness test and is never broken. During the
|
|
45
|
+
* transition from CLEO v2026.11.1 it also takes that release's O_EXCL
|
|
46
|
+
* `<lock>.reclaim` mutex, so old and new processes exclude each other.
|
|
43
47
|
*
|
|
44
48
|
* @module worktree-lock
|
|
45
49
|
* @task T12506
|
|
@@ -54,13 +58,12 @@ import { BRANCH_LOCK_ERROR_CODES } from '@cleocode/contracts/branch-lock.js';
|
|
|
54
58
|
import { ExitCode } from '@cleocode/contracts/exit-codes.js';
|
|
55
59
|
import { PS_STABLE_ENV } from '@cleocode/contracts/process-probe.js';
|
|
56
60
|
import { resolveStableDeviceIdPath, resolveWorktreeTaskLockPath } from '@cleocode/paths';
|
|
61
|
+
import { tryLockFile } from './napi-binding.js';
|
|
57
62
|
/** Default heartbeat TTL: 4 hours. Override with `CLEO_WORKTREE_LOCK_TTL_MS`. */
|
|
58
63
|
export const DEFAULT_WORKTREE_LOCK_TTL_MS = 4 * 60 * 60 * 1000;
|
|
59
64
|
/** Environment variable overriding {@link DEFAULT_WORKTREE_LOCK_TTL_MS}. */
|
|
60
65
|
export const WORKTREE_LOCK_TTL_ENV = 'CLEO_WORKTREE_LOCK_TTL_MS';
|
|
61
|
-
/**
|
|
62
|
-
const RECLAIM_MUTEX_STALE_MS = 30_000;
|
|
63
|
-
/** Attempts to obtain the reclaim mutex before re-evaluating the lock. */
|
|
66
|
+
/** Attempts to obtain the lock mutex before reporting it busy. */
|
|
64
67
|
const RECLAIM_ATTEMPTS = 50;
|
|
65
68
|
/** A record younger than this that does not parse is still being written (O_EXCL fallback). */
|
|
66
69
|
const UNREADABLE_GRACE_MS = 5_000;
|
|
@@ -68,7 +71,7 @@ const UNREADABLE_GRACE_MS = 5_000;
|
|
|
68
71
|
const MAX_ACQUIRE_PASSES = 400;
|
|
69
72
|
/** `link(2)` errnos that mean "hard links unsupported here", not "lock held". */
|
|
70
73
|
const LINK_UNSUPPORTED = new Set(['ENOTSUP', 'EOPNOTSUPP', 'EPERM', 'ENOSYS', 'EXDEV', 'EMLINK']);
|
|
71
|
-
/** Sleep between
|
|
74
|
+
/** Sleep between lock-mutex attempts. */
|
|
72
75
|
const RECLAIM_BACKOFF_MS = 20;
|
|
73
76
|
/**
|
|
74
77
|
* Resolve the heartbeat TTL: a positive integer `CLEO_WORKTREE_LOCK_TTL_MS`
|
|
@@ -328,47 +331,56 @@ function publishExclusive(lockPath, record) {
|
|
|
328
331
|
function sleepSync(ms) {
|
|
329
332
|
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
330
333
|
}
|
|
331
|
-
/**
|
|
332
|
-
|
|
334
|
+
/** Mutex paths this thread holds now (a nested take reports busy at once). */
|
|
335
|
+
const heldMutexes = new Set();
|
|
333
336
|
/**
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
337
|
-
* @param b - Second identity.
|
|
338
|
-
* @returns Whether both name one file.
|
|
337
|
+
* Path of the mutex guarding `lockPath`. It is a different file from the
|
|
338
|
+
* pre-T14491 O_EXCL mutex (`<lock>.reclaim`), so a stale one of those never
|
|
339
|
+
* blocks the OS lock. The file is never deleted (see {@link tryLockFile}).
|
|
339
340
|
*/
|
|
340
|
-
|
|
341
|
-
return
|
|
341
|
+
function mutexPathFor(lockPath) {
|
|
342
|
+
return `${lockPath}.flock`;
|
|
342
343
|
}
|
|
343
|
-
/**
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
token: parsed.token,
|
|
350
|
-
pid: parsed.pid,
|
|
351
|
-
processStartedAt: typeof parsed.processStartedAt === 'string' ? parsed.processStartedAt : null,
|
|
352
|
-
threadId: typeof parsed.threadId === 'number' ? parsed.threadId : -1,
|
|
353
|
-
};
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
catch {
|
|
357
|
-
/* a bare-token mutex from an older writer */
|
|
358
|
-
}
|
|
359
|
-
return null;
|
|
344
|
+
/**
|
|
345
|
+
* Path of the pre-T14491 O_EXCL mutex that CLEO v2026.11.1 and older take
|
|
346
|
+
* around every lock transition and dispose. Taken too during the transition.
|
|
347
|
+
*/
|
|
348
|
+
function legacyMutexPathFor(lockPath) {
|
|
349
|
+
return `${lockPath}.reclaim`;
|
|
360
350
|
}
|
|
351
|
+
/** This process's start time, read once (a `ps` call). */
|
|
352
|
+
let ownStartTime;
|
|
361
353
|
/**
|
|
362
|
-
*
|
|
363
|
-
*
|
|
364
|
-
* never pair the old holder with the new file (T14407).
|
|
365
|
-
*
|
|
366
|
-
* @returns The snapshot, or `null` when the file is missing.
|
|
354
|
+
* Raised when a legacy breaker file names a dead holder: only a human (or the
|
|
355
|
+
* old release itself) may remove it, never this release (T14491).
|
|
367
356
|
*/
|
|
368
|
-
|
|
357
|
+
export class LegacyMutexStaleError extends Error {
|
|
358
|
+
/** Always `E_WORKTREE_LEGACY_MUTEX_STALE`. */
|
|
359
|
+
code = 'E_WORKTREE_LEGACY_MUTEX_STALE';
|
|
360
|
+
/** Absolute path of the abandoned file. */
|
|
361
|
+
stalePath;
|
|
362
|
+
/** Remediation for the operator. */
|
|
363
|
+
fix;
|
|
364
|
+
/**
|
|
365
|
+
* @param stalePath - The abandoned legacy file.
|
|
366
|
+
* @param pid - The dead holder's pid, when the file names one.
|
|
367
|
+
*/
|
|
368
|
+
constructor(stalePath, pid) {
|
|
369
|
+
super(`an older CLEO left an abandoned worktree lock breaker at ${stalePath}` +
|
|
370
|
+
`${pid === null ? '' : ` (holder pid ${pid} is gone)`}`);
|
|
371
|
+
this.name = 'LegacyMutexStaleError';
|
|
372
|
+
this.stalePath = stalePath;
|
|
373
|
+
this.fix =
|
|
374
|
+
`An older CLEO (v2026.11.1 or earlier) crashed while breaking a worktree lock and left ${stalePath}. ` +
|
|
375
|
+
'Stop every older CLEO process on this machine (or upgrade it), then remove the file by hand: ' +
|
|
376
|
+
`rm '${stalePath}' — and retry. This release never removes another process's breaker.`;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
/** Read a legacy file's content and identity through one descriptor, or `null` when missing. */
|
|
380
|
+
function readLegacySnapshot(path) {
|
|
369
381
|
let fd;
|
|
370
382
|
try {
|
|
371
|
-
fd = openSync(
|
|
383
|
+
fd = openSync(path, 'r');
|
|
372
384
|
}
|
|
373
385
|
catch {
|
|
374
386
|
return null;
|
|
@@ -376,12 +388,7 @@ function readMutexSnapshot(mutexPath) {
|
|
|
376
388
|
try {
|
|
377
389
|
const raw = readFileSync(fd, 'utf-8');
|
|
378
390
|
const st = fstatSync(fd, { bigint: true });
|
|
379
|
-
return {
|
|
380
|
-
raw,
|
|
381
|
-
holder: parseMutexHolder(raw),
|
|
382
|
-
id: { dev: st.dev, ino: st.ino },
|
|
383
|
-
mtimeMs: Number(st.mtimeMs),
|
|
384
|
-
};
|
|
391
|
+
return { raw, dev: st.dev, ino: st.ino };
|
|
385
392
|
}
|
|
386
393
|
catch {
|
|
387
394
|
return null;
|
|
@@ -390,146 +397,204 @@ function readMutexSnapshot(mutexPath) {
|
|
|
390
397
|
closeSync(fd);
|
|
391
398
|
}
|
|
392
399
|
}
|
|
400
|
+
/** True when `b` is still the very file `a` read: same identity and content. */
|
|
401
|
+
function sameLegacyFile(a, b) {
|
|
402
|
+
return a.dev === b.dev && a.ino === b.ino && a.raw === b.raw;
|
|
403
|
+
}
|
|
404
|
+
/** The holder pid a legacy file names, or `null` (bare token, partial write). */
|
|
405
|
+
function legacyHolderPid(raw) {
|
|
406
|
+
let parsed;
|
|
407
|
+
try {
|
|
408
|
+
parsed = JSON.parse(raw);
|
|
409
|
+
}
|
|
410
|
+
catch {
|
|
411
|
+
return null;
|
|
412
|
+
}
|
|
413
|
+
if (parsed === null || typeof parsed !== 'object' || typeof parsed.pid !== 'number')
|
|
414
|
+
return null;
|
|
415
|
+
return {
|
|
416
|
+
pid: parsed.pid,
|
|
417
|
+
processStartedAt: typeof parsed.processStartedAt === 'string' ? parsed.processStartedAt : null,
|
|
418
|
+
};
|
|
419
|
+
}
|
|
393
420
|
/**
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
*
|
|
398
|
-
* The file names its holder (pid, start time, thread). A mutex older than
|
|
399
|
-
* {@link RECLAIM_MUTEX_STALE_MS} is broken, under the breaker lock, only when that holder is
|
|
400
|
-
* provably dead and the file is still the one read (holder and identity read from one descriptor), so a long hold by a live process (a forced dispose) is never
|
|
401
|
-
* broken as stale, even where its start time cannot be read (T14407). A mutex this very thread holds is reported
|
|
402
|
-
* busy at once: waiting would block the holder, which can never release it.
|
|
403
|
-
*
|
|
404
|
-
* @returns A release function (removes the mutex only if it is still ours),
|
|
405
|
-
* or `null` when the mutex stayed busy.
|
|
421
|
+
* Judge a legacy file's holder. `dead` only when its pid is gone, or alive with
|
|
422
|
+
* a different start time (recycled). A live pid whose start time cannot be
|
|
423
|
+
* compared is `alive`; a file naming no pid is `unknown` (it may be mid-write).
|
|
406
424
|
*/
|
|
407
|
-
function
|
|
408
|
-
const
|
|
425
|
+
function legacyHolderState(raw) {
|
|
426
|
+
const holder = legacyHolderPid(raw);
|
|
427
|
+
if (holder === null)
|
|
428
|
+
return 'unknown';
|
|
429
|
+
const liveness = probeProcess(holder.pid);
|
|
430
|
+
if (!liveness.alive)
|
|
431
|
+
return 'dead';
|
|
432
|
+
if (holder.processStartedAt !== null &&
|
|
433
|
+
liveness.startedAt !== null &&
|
|
434
|
+
liveness.startedAt !== holder.processStartedAt) {
|
|
435
|
+
return 'dead';
|
|
436
|
+
}
|
|
437
|
+
return 'alive';
|
|
438
|
+
}
|
|
439
|
+
/** This process's holder record for a legacy file (live pid, so an old breaker never removes it). */
|
|
440
|
+
function ownLegacyContent() {
|
|
409
441
|
if (ownStartTime === undefined)
|
|
410
442
|
ownStartTime = readProcessStartTime(process.pid);
|
|
411
|
-
|
|
443
|
+
return JSON.stringify({
|
|
412
444
|
token: randomUUID(),
|
|
413
445
|
pid: process.pid,
|
|
414
446
|
processStartedAt: ownStartTime,
|
|
415
447
|
threadId,
|
|
416
448
|
});
|
|
417
|
-
for (let attempt = 0; attempt < RECLAIM_ATTEMPTS; attempt++) {
|
|
418
|
-
try {
|
|
419
|
-
writeExclusive(mutexPath, content);
|
|
420
|
-
return () => {
|
|
421
|
-
try {
|
|
422
|
-
if (readFileSync(mutexPath, 'utf-8') === content)
|
|
423
|
-
unlinkSync(mutexPath);
|
|
424
|
-
}
|
|
425
|
-
catch {
|
|
426
|
-
/* already gone */
|
|
427
|
-
}
|
|
428
|
-
};
|
|
429
|
-
}
|
|
430
|
-
catch (err) {
|
|
431
|
-
if (err.code !== 'EEXIST')
|
|
432
|
-
throw err;
|
|
433
|
-
const snap = readMutexSnapshot(mutexPath);
|
|
434
|
-
if (snap !== null) {
|
|
435
|
-
const { holder } = snap;
|
|
436
|
-
if (holder !== null && holder.pid === process.pid && holder.threadId === threadId) {
|
|
437
|
-
return null; // held by this thread: re-entrant from inside a hold
|
|
438
|
-
}
|
|
439
|
-
// Breaks are serialised under `<mutex>.break`; the file is unlinked
|
|
440
|
-
// only while it is still the one whose holder was judged dead.
|
|
441
|
-
const nowMs = now();
|
|
442
|
-
if (isStaleMutex(snap, nowMs))
|
|
443
|
-
breakStaleMutex(mutexPath, snap, nowMs);
|
|
444
|
-
}
|
|
445
|
-
sleepSync(RECLAIM_BACKOFF_MS);
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
return null;
|
|
449
449
|
}
|
|
450
|
-
/**
|
|
451
|
-
function
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
450
|
+
/** Remove `path` only while it still holds `content` (a file this process created). */
|
|
451
|
+
function removeOwnLegacyFile(path, content) {
|
|
452
|
+
try {
|
|
453
|
+
if (readFileSync(path, 'utf-8') === content)
|
|
454
|
+
unlinkSync(path);
|
|
455
|
+
}
|
|
456
|
+
catch {
|
|
457
|
+
/* already gone */
|
|
458
|
+
}
|
|
457
459
|
}
|
|
458
460
|
/**
|
|
459
|
-
* Take the
|
|
460
|
-
*
|
|
461
|
-
*
|
|
461
|
+
* Take the legacy `<lock>.reclaim` mutex the way CLEO v2026.11.1 and older do
|
|
462
|
+
* (O_EXCL create, live holder record as content), so old and new processes
|
|
463
|
+
* exclude each other while both run on one machine (T14491). The caller holds
|
|
464
|
+
* the OS lock, so new-release processes never race each other here.
|
|
465
|
+
*
|
|
466
|
+
* A `.reclaim` that exists is never removed while its holder lives. A dead one
|
|
467
|
+
* (pid gone or recycled, which is how a SIGKILLed holder of either release
|
|
468
|
+
* leaves it) is broken only through the old release's own break protocol:
|
|
469
|
+
* {@link breakDeadLegacyMutex}.
|
|
470
|
+
*
|
|
471
|
+
* TRANSITIONAL: delete with the interlock once no CLEO older than T14491 can run.
|
|
462
472
|
*
|
|
463
|
-
* @returns A release function
|
|
473
|
+
* @returns A release function (removes only the file this call created), or
|
|
474
|
+
* `null` when the legacy mutex is held or was just broken (retry).
|
|
475
|
+
* @throws {@link LegacyMutexStaleError} on an abandoned foreign breaker; any
|
|
476
|
+
* I/O error other than EEXIST (fail closed).
|
|
464
477
|
*/
|
|
465
|
-
function
|
|
478
|
+
function takeLegacyMutex(legacyPath) {
|
|
479
|
+
const content = ownLegacyContent();
|
|
466
480
|
try {
|
|
467
|
-
writeExclusive(
|
|
481
|
+
writeExclusive(legacyPath, content);
|
|
468
482
|
}
|
|
469
483
|
catch (err) {
|
|
470
484
|
if (err.code !== 'EEXIST')
|
|
471
485
|
throw err;
|
|
472
|
-
const
|
|
473
|
-
if (
|
|
474
|
-
|
|
475
|
-
if (current !== null && isSameMutex(current, snap))
|
|
476
|
-
unlinkQuiet(breakerPath);
|
|
486
|
+
const seen = readLegacySnapshot(legacyPath);
|
|
487
|
+
if (seen !== null && legacyHolderState(seen.raw) === 'dead') {
|
|
488
|
+
breakDeadLegacyMutex(legacyPath, seen);
|
|
477
489
|
}
|
|
478
490
|
return null;
|
|
479
491
|
}
|
|
480
|
-
return () =>
|
|
481
|
-
try {
|
|
482
|
-
if (readFileSync(breakerPath, 'utf-8') === content)
|
|
483
|
-
unlinkSync(breakerPath);
|
|
484
|
-
}
|
|
485
|
-
catch {
|
|
486
|
-
/* already gone */
|
|
487
|
-
}
|
|
488
|
-
};
|
|
492
|
+
return () => removeOwnLegacyFile(legacyPath, content);
|
|
489
493
|
}
|
|
490
494
|
/**
|
|
491
|
-
*
|
|
492
|
-
*
|
|
493
|
-
*
|
|
494
|
-
*
|
|
495
|
-
*
|
|
496
|
-
*
|
|
497
|
-
*
|
|
498
|
-
*
|
|
495
|
+
* Break a dead `.reclaim` under the old release's breaker lock
|
|
496
|
+
* `<lock>.reclaim.break` (T14491). The breaker is created with O_EXCL and names
|
|
497
|
+
* this live process, so an old breaker never removes it; under it `.reclaim`
|
|
498
|
+
* is re-read through one descriptor and unlinked only while it is still the
|
|
499
|
+
* same dead file. `.reclaim` can only disappear under a breaker and O_EXCL
|
|
500
|
+
* never replaces it, so a live replacement can never be unlinked here, and
|
|
501
|
+
* this release never unlinks a live file of any process. Only the breaker this
|
|
502
|
+
* call created is removed. A foreign breaker is never removed: a live one means
|
|
503
|
+
* wait, a dead one is reported with {@link LegacyMutexStaleError}.
|
|
504
|
+
*
|
|
505
|
+
* Residual race (accepted for the transition, owner decision D11244): two OLD
|
|
506
|
+
* processes recovering the same dead foreign breaker can, between them, unlink
|
|
507
|
+
* the breaker this call has just created; that needs a crashed old breaker and
|
|
508
|
+
* two old contenders, and is the race old releases already have among
|
|
509
|
+
* themselves.
|
|
510
|
+
*
|
|
511
|
+
* @throws {@link LegacyMutexStaleError} when a dead foreign breaker blocks the break.
|
|
499
512
|
*/
|
|
500
|
-
function
|
|
501
|
-
const
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
513
|
+
function breakDeadLegacyMutex(legacyPath, seen) {
|
|
514
|
+
const breakerPath = `${legacyPath}.break`;
|
|
515
|
+
const content = ownLegacyContent();
|
|
516
|
+
try {
|
|
517
|
+
writeExclusive(breakerPath, content);
|
|
518
|
+
}
|
|
519
|
+
catch (err) {
|
|
520
|
+
if (err.code !== 'EEXIST')
|
|
521
|
+
throw err;
|
|
522
|
+
const breaker = readLegacySnapshot(breakerPath);
|
|
523
|
+
if (breaker !== null && legacyHolderState(breaker.raw) === 'dead') {
|
|
524
|
+
throw new LegacyMutexStaleError(breakerPath, legacyHolderPid(breaker.raw)?.pid ?? null);
|
|
525
|
+
}
|
|
526
|
+
return; // a live (or mid-write) breaker: wait
|
|
527
|
+
}
|
|
509
528
|
try {
|
|
510
|
-
const current =
|
|
511
|
-
if (current !== null &&
|
|
512
|
-
|
|
529
|
+
const current = readLegacySnapshot(legacyPath);
|
|
530
|
+
if (current !== null &&
|
|
531
|
+
sameLegacyFile(current, seen) &&
|
|
532
|
+
legacyHolderState(current.raw) === 'dead') {
|
|
533
|
+
unlinkQuiet(legacyPath);
|
|
534
|
+
}
|
|
513
535
|
}
|
|
514
536
|
finally {
|
|
515
|
-
|
|
537
|
+
removeOwnLegacyFile(breakerPath, content);
|
|
516
538
|
}
|
|
517
539
|
}
|
|
518
540
|
/**
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
* (
|
|
522
|
-
*
|
|
541
|
+
* Take the per-lock mutex: an exclusive OS advisory lock held on an open file
|
|
542
|
+
* descriptor of `<lock>.flock` (T14491). It serialises every write of the lock
|
|
543
|
+
* file (publish, reclaim, re-entry, heartbeat, release) and the whole of
|
|
544
|
+
* {@link withWorktreeTaskLockHeld}.
|
|
545
|
+
*
|
|
546
|
+
* The OS releases it when the holder releases it or exits, however it exits,
|
|
547
|
+
* so the OS lock has no staleness test, no break and no breaker: a crashed
|
|
548
|
+
* holder frees it by dying, and a live one is never displaced. A mutex this
|
|
549
|
+
* very thread holds is reported busy at once: waiting would block the holder,
|
|
550
|
+
* which can never release it.
|
|
551
|
+
*
|
|
552
|
+
* While older CLEO releases may still run, the legacy `<lock>.reclaim` mutex is
|
|
553
|
+
* also taken under the OS lock ({@link takeLegacyMutex}), so a dispose by an
|
|
554
|
+
* old process and a transition by a new one never overlap.
|
|
555
|
+
*
|
|
556
|
+
* @returns A release function, or `null` when the mutex stayed busy.
|
|
557
|
+
* @throws When the lock file cannot be opened or locked, or the native binding
|
|
558
|
+
* lacks the lock (fail closed: callers refuse, they never proceed unlocked).
|
|
523
559
|
*/
|
|
524
|
-
function
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
560
|
+
function takeLockMutex(lockPath) {
|
|
561
|
+
const mutexPath = mutexPathFor(lockPath);
|
|
562
|
+
if (heldMutexes.has(mutexPath))
|
|
563
|
+
return null;
|
|
564
|
+
for (let attempt = 0; attempt < RECLAIM_ATTEMPTS; attempt++) {
|
|
565
|
+
const handle = tryLockFile(mutexPath);
|
|
566
|
+
if (handle !== null) {
|
|
567
|
+
let releaseLegacy;
|
|
568
|
+
try {
|
|
569
|
+
releaseLegacy = takeLegacyMutex(legacyMutexPathFor(lockPath));
|
|
570
|
+
}
|
|
571
|
+
catch (err) {
|
|
572
|
+
releaseOsLock(handle);
|
|
573
|
+
throw err;
|
|
574
|
+
}
|
|
575
|
+
if (releaseLegacy !== null) {
|
|
576
|
+
heldMutexes.add(mutexPath);
|
|
577
|
+
const legacy = releaseLegacy;
|
|
578
|
+
return () => {
|
|
579
|
+
heldMutexes.delete(mutexPath);
|
|
580
|
+
legacy();
|
|
581
|
+
releaseOsLock(handle);
|
|
582
|
+
};
|
|
583
|
+
}
|
|
584
|
+
releaseOsLock(handle);
|
|
585
|
+
}
|
|
586
|
+
sleepSync(RECLAIM_BACKOFF_MS);
|
|
587
|
+
}
|
|
588
|
+
return null;
|
|
589
|
+
}
|
|
590
|
+
/** Release an OS lock handle; a failed unlock still closes the descriptor, which releases it. */
|
|
591
|
+
function releaseOsLock(handle) {
|
|
592
|
+
try {
|
|
593
|
+
handle.release();
|
|
594
|
+
}
|
|
595
|
+
catch {
|
|
596
|
+
/* the descriptor is closed either way, which releases the lock */
|
|
597
|
+
}
|
|
533
598
|
}
|
|
534
599
|
/**
|
|
535
600
|
* Unlink the lock file when `matches` accepts what is on disk. The caller
|
|
@@ -556,7 +621,7 @@ function unlinkLockIf(lockPath, matches) {
|
|
|
556
621
|
function releaseLockIf(lockPath, matches) {
|
|
557
622
|
let release;
|
|
558
623
|
try {
|
|
559
|
-
release = takeLockMutex(lockPath
|
|
624
|
+
release = takeLockMutex(lockPath);
|
|
560
625
|
}
|
|
561
626
|
catch {
|
|
562
627
|
return null;
|
|
@@ -594,7 +659,7 @@ export function withWorktreeTaskLockHeld(projectHash, taskId, token, fn, now = D
|
|
|
594
659
|
const lockPath = resolveWorktreeTaskLockPath(projectHash, taskId);
|
|
595
660
|
let release;
|
|
596
661
|
try {
|
|
597
|
-
release = takeLockMutex(lockPath
|
|
662
|
+
release = takeLockMutex(lockPath);
|
|
598
663
|
}
|
|
599
664
|
catch (err) {
|
|
600
665
|
return { held: false, reason: `the lock mutex could not be taken (${String(err)})` };
|
|
@@ -661,7 +726,9 @@ function unavailableError(taskId, lockPath, cause) {
|
|
|
661
726
|
holder: null,
|
|
662
727
|
reason: 'lock-unavailable',
|
|
663
728
|
lockPath,
|
|
664
|
-
fix:
|
|
729
|
+
fix: cause instanceof LegacyMutexStaleError
|
|
730
|
+
? cause.fix
|
|
731
|
+
: `Make ${dirname(lockPath)} writable (check permissions, free space and the CLEO_HOME filesystem), then retry the spawn.`,
|
|
665
732
|
cause,
|
|
666
733
|
});
|
|
667
734
|
}
|
|
@@ -732,7 +799,7 @@ function acquireUnchecked(options, lockPath) {
|
|
|
732
799
|
sleepSync(RECLAIM_BACKOFF_MS); // O_EXCL fallback writer mid-write
|
|
733
800
|
backoff = false;
|
|
734
801
|
// Every write of the lock file happens under its mutex (T14407).
|
|
735
|
-
const release = takeLockMutex(lockPath
|
|
802
|
+
const release = takeLockMutex(lockPath);
|
|
736
803
|
if (release === null) {
|
|
737
804
|
// Someone is transitioning or disposing the lock: refuse, naming its holder.
|
|
738
805
|
const busy = readLockAt(lockPath, now());
|
|
@@ -805,7 +872,7 @@ function acquireUnchecked(options, lockPath) {
|
|
|
805
872
|
*/
|
|
806
873
|
export function heartbeatWorktreeTaskLock(projectHash, taskId, token, now = Date.now) {
|
|
807
874
|
const lockPath = resolveWorktreeTaskLockPath(projectHash, taskId);
|
|
808
|
-
const release = takeLockMutex(lockPath
|
|
875
|
+
const release = takeLockMutex(lockPath);
|
|
809
876
|
if (release === null)
|
|
810
877
|
return null;
|
|
811
878
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-lock.js","sourceRoot":"","sources":["../src/worktree-lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worktree-lock.js","sourceRoot":"","sources":["../src/worktree-lock.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/worktree",
|
|
3
|
-
"version": "2026.11.2-canary.
|
|
3
|
+
"version": "2026.11.2-canary.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Native CLEO worktree backend SDK",
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
"author": "CLEO Code <hello@cleocode.dev>",
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@cleocode/contracts": "2026.11.2-canary.
|
|
44
|
-
"@cleocode/paths": "2026.11.2-canary.
|
|
43
|
+
"@cleocode/contracts": "2026.11.2-canary.2",
|
|
44
|
+
"@cleocode/paths": "2026.11.2-canary.2"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@types/node": "^24.3.0",
|
|
48
48
|
"typescript": "^6.0.2",
|
|
49
49
|
"vitest": "^4.1.4",
|
|
50
|
-
"@cleocode/core": "2026.11.2-canary.
|
|
50
|
+
"@cleocode/core": "2026.11.2-canary.2"
|
|
51
51
|
},
|
|
52
52
|
"repository": {
|
|
53
53
|
"type": "git",
|