@cleocode/worktree 2026.11.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.
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "schema": 2,
3
- "sourceHash": "99654740a269f28d21af744a0214e453086ab41767d79c2a92859f32de5e10dd"
3
+ "sourceHash": "db591e1bb2e48d55aba018015637613a95dafbe34a2f91c73f1cace544a73fe4"
4
4
  }
@@ -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
- export type { CopyOptsNapi, CopyResultNapi, DestroyOptsNapi, DestroyResultNapi, IncludePatternNapi, IntegrateOptsNapi, IntegrateResultNapi, ListOptsNapi, ProvisionOptsNapi, PruneCandidateNapi, PruneOptsNapi, PrunePlanNapi, RemoveDirOptsNapi, RemoveDirResultNapi, WorktreeHandleNapi, WorktreeInfoNapi, };
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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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"napi-binding.js","sourceRoot":"","sources":["../src/napi-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,MAAM,uBAAuB,GAAG,aAAa,CAC3C,IAAI,GAAG,CAAC,6BAA6B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACxD,CAAC;AACF,MAAM,yBAAyB,GAAG,aAAa,CAC7C,IAAI,GAAG,CAAC,yCAAyC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACpE,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,iBAAiB;IACxB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACnC,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,eAAe,CAAC;IACnE,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,iBAAiB,CAAC;IACvE,IAAI,QAAQ,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,cAAc,CAAC;IACrE,IAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,gBAAgB,CAAC;IACpE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB;IACvB,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC3B,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,0BAA0B;IACjC,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,iBAAiB,MAAM,OAAO,CAAC,CAAC;QACtE,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAqMD;;;;;;;;;;;GAWG;AACH,IAAI,aAAa,GAA8B,IAAI,CAAC;AACpD,SAAS,SAAS;IAChB,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC;IAEjD,IAAI,UAAU,CAAC,uBAAuB,CAAC,EAAE,CAAC;QACxC,aAAa,GAAG,QAAQ,CAAC,uBAAuB,CAAuB,CAAC;QACxE,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,aAAa,GAAG,QAAQ,CAAC,yBAAyB,CAAuB,CAAC;YAC1E,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,aAAa,EAAE,EAAE,CAAC;gBACpB,aAAa,GAAG,8BAA8B,EAAE,CAAC;gBACjD,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,MAAM,IAAI,KAAK,CACb,kEAAkE,yBAAyB,IAAI;gBAC7F,yGAAyG,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,0EAA0E;IAC1E,4EAA4E;IAC5E,mDAAmD;IACnD,MAAM,mBAAmB,GAAG,0BAA0B,EAAE,CAAC;IACzD,IAAI,mBAAmB,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,aAAa,GAAG,QAAQ,CAAC,mBAAmB,CAAuB,CAAC;YACpE,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,aAAa,EAAE,EAAE,CAAC;gBACpB,aAAa,GAAG,8BAA8B,EAAE,CAAC;gBACjD,OAAO,aAAa,CAAC;YACvB,CAAC;YAED,MAAM,IAAI,KAAK,CACb,mEAAmE,mBAAmB,IAAI;gBACxF,4FAA4F;gBAC5F,uDAAuD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,aAAa,EAAE,EAAE,CAAC;QACpB,aAAa,GAAG,8BAA8B,EAAE,CAAC;QACjD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,wDAAwD,uBAAuB,IAAI;QACjF,mGAAmG;QACnG,uFAAuF,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC;AAC7E,CAAC;AAED,SAAS,8BAA8B;IACrC,MAAM,yBAAyB,GAA4C,CACzE,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,EAAE;QACF,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAChD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;gBACjD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBACjD,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC/B,SAAS;gBACX,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpE,WAAW,IAAI,CAAC,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;IAC/F,CAAC,CAAC;IAEF,OAAO;QACL,iBAAiB,EAAE,yBAAyB;QAC5C,eAAe;YACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QAClD,CAAC;QACD,mBAAmB,CAAC,QAAQ;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YACvD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;gBAAE,OAAO,EAAE,CAAC;YACxC,OAAO,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC;iBACtC,KAAK,CAAC,OAAO,CAAC;iBACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;iBAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACd,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBACpD,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;aACjC,CAAC,CAAC,CAAC;QACR,CAAC;QACD,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI;YAC1C,OAAO,yBAAyB,CAC9B,MAAM,EACN,OAAO,EACP,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EACnF,IAAI,CACL,CAAC;QACJ,CAAC;QACD,aAAa;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,cAAc,CAAC,IAAI;YACjB,OAAO,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACvE,CAAC;QACD,SAAS,CAAC,IAAI;YACZ,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAChC,CAAC;QACD,iBAAiB,CAAC,KAAK;YACrB,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;QACD,iBAAiB,CAAC,KAAK;YACrB,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,YAAY,EAAE,EAAE;gBAChB,MAAM,EAAE,KAAK;gBACb,WAAW,EAAE,EAAE;gBACf,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,KAAK;gBACd,qEAAqE;gBACrE,qEAAqE;gBACrE,KAAK,EACH,oFAAoF;oBACpF,IAAI,yBAAyB,2DAA2D;oBACxF,oFAAoF;oBACpF,8CAA8C;aACjD,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA4C,CACxE,MAAM,EACN,OAAO,EACP,KAAK,EACL,IAAI,EACJ,EAAE,CAAC,SAAS,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,eAAe,GAA0C,CAAC,IAAI,EAAE,EAAE,CAC7E,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,mBAAmB,GAA8C,CAAC,QAAQ,EAAE,EAAE,CACzF,SAAS,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAuC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAClG,SAAS,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,aAAa,GAAwC,CAAC,IAAI,EAAE,EAAE,CACzE,SAAS,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,cAAc,GAAyC,CAAC,IAAI,EAAE,EAAE,CAC3E,SAAS,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,SAAS,GAAoC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,iBAAiB,GAA4C,CAAC,IAAI,EAAE,EAAE,CACjF,SAAS,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAA4C,CAAC,IAAI,EAAE,EAAE,CACjF,SAAS,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC"}
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, held for the whole check and disposal (a live
180
- * holder's mutex is never broken as stale), it checks that `lockToken` still
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
@@ -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, held for the whole check and disposal (a live
542
- * holder's mutex is never broken as stale), it checks that `lockToken` still
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
@@ -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 second O_EXCL mutex file
39
- * (`<lock>.reclaim`): publish, re-entry, reclaim, heartbeat, release and
40
- * session-end release (T14407). A holder of the mutex (a dispose under
41
- * {@link withWorktreeTaskLockHeld}) therefore sees no lock transition at all
42
- * until it lets go.
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
- * A file's identity: device and inode as `bigint` (T14407). A `Number` cannot
183
- * hold every 64-bit file id (Windows), so two files could compare equal.
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 interface FileIdentity {
186
- dev: bigint;
187
- ino: bigint;
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":"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"}
1
+ {"version":3,"file":"worktree-lock.d.ts","sourceRoot":"","sources":["../src/worktree-lock.ts"],"names":[],"mappings":"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"}
@@ -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 second O_EXCL mutex file
39
- * (`<lock>.reclaim`): publish, re-entry, reclaim, heartbeat, release and
40
- * session-end release (T14407). A holder of the mutex (a dispose under
41
- * {@link withWorktreeTaskLockHeld}) therefore sees no lock transition at all
42
- * until it lets go.
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
- /** A reclaim mutex older than this is abandoned (its owner crashed mid-reclaim). */
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 reclaim-mutex attempts. */
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
- /** This process's start time, read once (a `ps` call). */
332
- let ownStartTime;
334
+ /** Mutex paths this thread holds now (a nested take reports busy at once). */
335
+ const heldMutexes = new Set();
333
336
  /**
334
- * True when two identities name the same file (`dev` and `ino` compared as `bigint`).
335
- *
336
- * @param a - First identity.
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
- export function sameFileIdentity(a, b) {
341
- return a.dev === b.dev && a.ino === b.ino;
341
+ function mutexPathFor(lockPath) {
342
+ return `${lockPath}.flock`;
342
343
  }
343
- /** Parse a mutex file's holder, or `null` when it is not a record. */
344
- function parseMutexHolder(raw) {
345
- try {
346
- const parsed = JSON.parse(raw);
347
- if (typeof parsed.token === 'string' && typeof parsed.pid === 'number') {
348
- return {
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
- * Read a mutex file's holder and identity from ONE open descriptor (`fstat` on
363
- * the fd that was read), so a mutex replaced between the read and the stat can
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
- function readMutexSnapshot(mutexPath) {
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(mutexPath, 'r');
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
- * Take the per-lock mutex (`<lock>.reclaim`, O_EXCL). It serialises every
395
- * write of the lock file (publish, reclaim, re-entry, heartbeat, release) and
396
- * the whole of {@link withWorktreeTaskLockHeld}.
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 takeLockMutex(lockPath, now) {
408
- const mutexPath = `${lockPath}.reclaim`;
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
- const content = JSON.stringify({
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
- /** A mutex (or breaker) past {@link RECLAIM_MUTEX_STALE_MS} whose holder is provably dead. */
451
- function isStaleMutex(snap, nowMs) {
452
- return nowMs - snap.mtimeMs > RECLAIM_MUTEX_STALE_MS && !isMutexHolderAlive(snap.holder);
453
- }
454
- /** True when `current` is still the very file `snap` read: same identity and content. */
455
- function isSameMutex(current, snap) {
456
- return sameFileIdentity(current.id, snap.id) && current.raw === snap.raw;
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 breaker lock `<mutex>.break` (O_EXCL). A breaker whose holder is
460
- * provably dead is removed (only while it is still the file judged dead) and
461
- * the caller retries on its next attempt; a live one is never touched.
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, or `null` when another breaker holds it.
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 takeBreaker(breakerPath, content, nowMs) {
478
+ function takeLegacyMutex(legacyPath) {
479
+ const content = ownLegacyContent();
466
480
  try {
467
- writeExclusive(breakerPath, content);
481
+ writeExclusive(legacyPath, content);
468
482
  }
469
483
  catch (err) {
470
484
  if (err.code !== 'EEXIST')
471
485
  throw err;
472
- const snap = readMutexSnapshot(breakerPath);
473
- if (snap !== null && isStaleMutex(snap, nowMs)) {
474
- const current = readMutexSnapshot(breakerPath);
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
- * Remove an abandoned mutex (T14407). A path cannot be compared-and-deleted
492
- * atomically, so every break runs under the breaker lock: under it the mutex
493
- * is re-read through one descriptor and unlinked only if it is still the file
494
- * `stale` read. Acquisition is O_EXCL, which never replaces an existing mutex,
495
- * so with breaks serialised a live mutex is never moved or deleted.
496
- *
497
- * Residual: two contenders that both find the same DEAD breaker can race to
498
- * remove it; that needs a breaker that died mid-break and stayed stale.
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 breakStaleMutex(mutexPath, stale, nowMs) {
501
- const release = takeBreaker(`${mutexPath}.break`, JSON.stringify({
502
- token: randomUUID(),
503
- pid: process.pid,
504
- processStartedAt: ownStartTime ?? null,
505
- threadId,
506
- }), nowMs);
507
- if (release === null)
508
- return;
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 = readMutexSnapshot(mutexPath);
511
- if (current !== null && isSameMutex(current, stale))
512
- unlinkQuiet(mutexPath);
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
- release();
537
+ removeOwnLegacyFile(breakerPath, content);
516
538
  }
517
539
  }
518
540
  /**
519
- * False only when the mutex holder is provably dead: its pid is gone, or alive
520
- * with a different start time (recycled). An unknown start time on either side
521
- * (Windows, a failed `ps`) keeps it alive (T14407). A mutex naming no holder
522
- * (an older bare-token writer) is treated as dead once stale.
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 isMutexHolderAlive(holder) {
525
- if (holder === null)
526
- return false;
527
- const liveness = probeProcess(holder.pid);
528
- if (!liveness.alive)
529
- return false;
530
- return (holder.processStartedAt === null ||
531
- liveness.startedAt === null ||
532
- liveness.startedAt === holder.processStartedAt);
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, Date.now);
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, now);
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: `Make ${dirname(lockPath)} writable (check permissions, free space and the CLEO_HOME filesystem), then retry the spawn.`,
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, now);
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, now);
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/worktree",
3
- "version": "2026.11.1",
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.1",
44
- "@cleocode/paths": "2026.11.1"
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.1"
50
+ "@cleocode/core": "2026.11.2-canary.2"
51
51
  },
52
52
  "repository": {
53
53
  "type": "git",