@cleocode/worktree 2026.10.12 → 2026.10.13
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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/worktree-dependents.d.ts +118 -0
- package/dist/worktree-dependents.d.ts.map +1 -0
- package/dist/worktree-dependents.js +298 -0
- package/dist/worktree-dependents.js.map +1 -0
- package/dist/worktree-destroy.d.ts.map +1 -1
- package/dist/worktree-destroy.js +34 -0
- package/dist/worktree-destroy.js.map +1 -1
- package/dist/worktree-prune.d.ts.map +1 -1
- package/dist/worktree-prune.js +17 -1
- package/dist/worktree-prune.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* @task T1161
|
|
21
21
|
* @adr ADR-055
|
|
22
22
|
*/
|
|
23
|
-
export type { CreateWorktreeOptions, CreateWorktreeResult, DestroyWorktreeOptions, DestroyWorktreeResult, ListWorktreesOptions, PruneWorktreesOptions, PruneWorktreesResult, WorktreeHook, WorktreeHookResult, WorktreeIncludePattern, WorktreeListEntry, } from '@cleocode/contracts';
|
|
23
|
+
export type { CreateWorktreeOptions, CreateWorktreeResult, DestroyWorktreeOptions, DestroyWorktreeResult, ListWorktreesOptions, PruneWorktreesOptions, PruneWorktreesResult, WorktreeDisposalBlockers, WorktreeHook, WorktreeHookResult, WorktreeIncludePattern, WorktreeKeepMarker, WorktreeListEntry, } from '@cleocode/contracts';
|
|
24
24
|
export type { CopyPathsOptions } from './copy-on-write.js';
|
|
25
25
|
export { copyPathsWithReflock } from './copy-on-write.js';
|
|
26
26
|
export { type AddTransientWorktreeOptions, addTransientWorktree, countUnmergedCommits, DEFAULT_GIT_TIMEOUT_MS, getGitRoot, gitSilent, gitSync, removeTransientWorktree, } from './git.js';
|
|
@@ -30,6 +30,7 @@ export { detectPartialWorktree, recoverPartialWorktree } from './recovery.js';
|
|
|
30
30
|
export type { WorktreeAuditPayload } from './worktree-audit.js';
|
|
31
31
|
export { addWorktreeToSentinelIndex, appendWorktreeAuditLog, removeWorktreeFromSentinelIndex, resolveWorktreeIndexPath, WORKTREE_INDEX_RELATIVE_PATH, WORKTREE_LIFECYCLE_AUDIT_FILE, } from './worktree-audit.js';
|
|
32
32
|
export { createWorktree } from './worktree-create.js';
|
|
33
|
+
export { describeDisposalBlockers, findDisposalBlockers, findUnrecoverableEvidence, findWorktreeDependents, guardWorktreeDisposal, keepMarkerPath, readKeepMarker, } from './worktree-dependents.js';
|
|
33
34
|
export { destroyWorktree } from './worktree-destroy.js';
|
|
34
35
|
export { runProjectWorktreeHooks, runWorktreeHooks } from './worktree-hooks.js';
|
|
35
36
|
export { applyIncludePatterns, loadWorktreeIncludePatterns } from './worktree-include.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,EACP,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,IAAI,qBAAqB,EAC1C,cAAc,IAAI,kBAAkB,EACpC,SAAS,IAAI,aAAa,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC7F,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,EACP,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,IAAI,qBAAqB,EAC1C,cAAc,IAAI,kBAAkB,EACpC,SAAS,IAAI,aAAa,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC9E,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACL,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAC7F,YAAY,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -28,6 +28,7 @@ export { destroyWorktree as napiDestroyWorktree, integrateWorktree, provisionWor
|
|
|
28
28
|
export { detectPartialWorktree, recoverPartialWorktree } from './recovery.js';
|
|
29
29
|
export { addWorktreeToSentinelIndex, appendWorktreeAuditLog, removeWorktreeFromSentinelIndex, resolveWorktreeIndexPath, WORKTREE_INDEX_RELATIVE_PATH, WORKTREE_LIFECYCLE_AUDIT_FILE, } from './worktree-audit.js';
|
|
30
30
|
export { createWorktree } from './worktree-create.js';
|
|
31
|
+
export { describeDisposalBlockers, findDisposalBlockers, findUnrecoverableEvidence, findWorktreeDependents, guardWorktreeDisposal, keepMarkerPath, readKeepMarker, } from './worktree-dependents.js';
|
|
31
32
|
export { destroyWorktree } from './worktree-destroy.js';
|
|
32
33
|
export { runProjectWorktreeHooks, runWorktreeHooks } from './worktree-hooks.js';
|
|
33
34
|
export { applyIncludePatterns, loadWorktreeIncludePatterns } from './worktree-include.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAmBH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAEL,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,UAAU,EACV,SAAS,EACT,OAAO,EACP,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAClB,mEAAmE;AACnE,sEAAsE;AACtE,OAAO,EACL,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,IAAI,qBAAqB,EAC1C,cAAc,IAAI,kBAAkB,EACpC,SAAS,IAAI,aAAa,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE9E,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,cAAc,GACf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EACL,aAAa,EACb,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAEL,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EAGrB,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,wBAAwB,EACxB,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,yBAAyB,EACzB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAE7F,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disposal guard for task worktrees (T13696).
|
|
3
|
+
*
|
|
4
|
+
* Disposing a worktree deletes its whole directory. Two things outside it can
|
|
5
|
+
* still need files inside it:
|
|
6
|
+
*
|
|
7
|
+
* 1. Other checkouts that symlink into it — agents share one physical
|
|
8
|
+
* `node_modules` across worktrees, so deleting the owner breaks every
|
|
9
|
+
* sibling that links to it.
|
|
10
|
+
* 2. The task's own evidence — a `test-run:` receipt or a gitignored `files:`
|
|
11
|
+
* path hashed inside the worktree exists nowhere else, so deleting it makes
|
|
12
|
+
* the recorded sha256 unverifiable forever.
|
|
13
|
+
*
|
|
14
|
+
* Evidence is kept in place rather than moved: re-validation reads the atom's
|
|
15
|
+
* `resolvedPath`, then the same path under the project root, and nothing else,
|
|
16
|
+
* so a moved file would fail it exactly like a deleted one.
|
|
17
|
+
*
|
|
18
|
+
* @task T13696
|
|
19
|
+
*/
|
|
20
|
+
import type { EvidenceAtom, WorktreeDisposalBlockers, WorktreeKeepMarker } from '@cleocode/contracts';
|
|
21
|
+
/**
|
|
22
|
+
* Symlinks in other checkouts that resolve into `worktreePath`.
|
|
23
|
+
*
|
|
24
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
25
|
+
* @param gitRoot - Git root whose registered worktrees are scanned.
|
|
26
|
+
* @returns The linking paths (empty when nothing depends on it).
|
|
27
|
+
*
|
|
28
|
+
* @task T13696
|
|
29
|
+
*/
|
|
30
|
+
export declare function findWorktreeDependents(worktreePath: string, gitRoot: string): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Evidence files inside `worktreePath` that re-validation could not find once
|
|
33
|
+
* the worktree is gone: no byte-identical file at the same relative path under
|
|
34
|
+
* `projectRoot` (where a merged, committed file lands).
|
|
35
|
+
*
|
|
36
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
37
|
+
* @param projectRoot - The main checkout re-validation falls back to.
|
|
38
|
+
* @param evidence - The task's recorded evidence atoms.
|
|
39
|
+
* @returns Absolute paths of the files that would be lost.
|
|
40
|
+
*
|
|
41
|
+
* @task T13696
|
|
42
|
+
*/
|
|
43
|
+
export declare function findUnrecoverableEvidence(worktreePath: string, projectRoot: string, evidence: readonly EvidenceAtom[]): string[];
|
|
44
|
+
/**
|
|
45
|
+
* Why `worktreePath` must not be disposed, or `null` when nothing needs it.
|
|
46
|
+
*
|
|
47
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
48
|
+
* @param opts.gitRoot - Git root whose registered worktrees are scanned.
|
|
49
|
+
* @param opts.projectRoot - The main checkout evidence re-validation falls back to.
|
|
50
|
+
* @param opts.evidence - The task's recorded evidence atoms.
|
|
51
|
+
* @returns The blockers, or `null` when disposal is safe.
|
|
52
|
+
*
|
|
53
|
+
* @task T13696
|
|
54
|
+
*/
|
|
55
|
+
export declare function findDisposalBlockers(worktreePath: string, opts: {
|
|
56
|
+
gitRoot: string;
|
|
57
|
+
projectRoot: string;
|
|
58
|
+
evidence?: readonly EvidenceAtom[];
|
|
59
|
+
}): WorktreeDisposalBlockers | null;
|
|
60
|
+
/**
|
|
61
|
+
* One line naming what kept a worktree and why, for logs and `error` fields.
|
|
62
|
+
*
|
|
63
|
+
* @param worktreePath - The kept worktree.
|
|
64
|
+
* @param blockers - What kept it.
|
|
65
|
+
* @returns A human-readable explanation.
|
|
66
|
+
*
|
|
67
|
+
* @task T13696
|
|
68
|
+
*/
|
|
69
|
+
export declare function describeDisposalBlockers(worktreePath: string, blockers: WorktreeDisposalBlockers): string;
|
|
70
|
+
/**
|
|
71
|
+
* Where the keep marker for `worktreePath` lives: beside the checkout, never
|
|
72
|
+
* inside it, so `git status` stays clean and nothing can commit it.
|
|
73
|
+
*
|
|
74
|
+
* @param worktreePath - The worktree the marker describes.
|
|
75
|
+
* @returns `<worktreePath>.keep.json`.
|
|
76
|
+
*
|
|
77
|
+
* @task T13700
|
|
78
|
+
*/
|
|
79
|
+
export declare function keepMarkerPath(worktreePath: string): string;
|
|
80
|
+
/**
|
|
81
|
+
* The keep marker for `worktreePath`, or `null` when there is none or it is
|
|
82
|
+
* unreadable.
|
|
83
|
+
*
|
|
84
|
+
* @param worktreePath - The worktree to look up.
|
|
85
|
+
* @returns The marker, or `null`.
|
|
86
|
+
*
|
|
87
|
+
* @task T13700
|
|
88
|
+
*/
|
|
89
|
+
export declare function readKeepMarker(worktreePath: string): WorktreeKeepMarker | null;
|
|
90
|
+
/**
|
|
91
|
+
* The one disposal guard every path that deletes a worktree calls first
|
|
92
|
+
* (T13700): dependents scan, evidence check, and the durable keep marker.
|
|
93
|
+
*
|
|
94
|
+
* Evidence from an earlier keep is re-checked from the marker, so a batch
|
|
95
|
+
* prune with no task store still honours it. While anything blocks, the marker
|
|
96
|
+
* is written (or refreshed) and the blockers returned; once nothing does, the
|
|
97
|
+
* marker is removed and `null` returned, so the caller may dispose.
|
|
98
|
+
*
|
|
99
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
100
|
+
* @param opts.taskId - Owning task, recorded on a new marker.
|
|
101
|
+
* @param opts.reason - The disposal asking, recorded on a new marker.
|
|
102
|
+
* @param opts.gitRoot - Git root whose worktrees are scanned; defaults to the worktree itself.
|
|
103
|
+
* @param opts.projectRoot - Main checkout evidence falls back to; defaults to the marker's.
|
|
104
|
+
* @param opts.evidence - The task's recorded evidence atoms, when the caller has them.
|
|
105
|
+
* @param opts.dryRun - Report only; never write or remove the marker.
|
|
106
|
+
* @returns The blockers, or `null` when disposal is safe.
|
|
107
|
+
*
|
|
108
|
+
* @task T13700
|
|
109
|
+
*/
|
|
110
|
+
export declare function guardWorktreeDisposal(worktreePath: string, opts: {
|
|
111
|
+
taskId: string | null;
|
|
112
|
+
reason: string;
|
|
113
|
+
gitRoot?: string;
|
|
114
|
+
projectRoot?: string;
|
|
115
|
+
evidence?: readonly EvidenceAtom[];
|
|
116
|
+
dryRun?: boolean;
|
|
117
|
+
}): WorktreeDisposalBlockers | null;
|
|
118
|
+
//# sourceMappingURL=worktree-dependents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-dependents.d.ts","sourceRoot":"","sources":["../src/worktree-dependents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAwD7B;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAoBtF;AAkDD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,YAAY,EAAE,GAChC,MAAM,EAAE,CAEV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;CAAE,GACjF,wBAAwB,GAAG,IAAI,CAIjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAiB9E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE;IACJ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GACA,wBAAwB,GAAG,IAAI,CAmCjC"}
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disposal guard for task worktrees (T13696).
|
|
3
|
+
*
|
|
4
|
+
* Disposing a worktree deletes its whole directory. Two things outside it can
|
|
5
|
+
* still need files inside it:
|
|
6
|
+
*
|
|
7
|
+
* 1. Other checkouts that symlink into it — agents share one physical
|
|
8
|
+
* `node_modules` across worktrees, so deleting the owner breaks every
|
|
9
|
+
* sibling that links to it.
|
|
10
|
+
* 2. The task's own evidence — a `test-run:` receipt or a gitignored `files:`
|
|
11
|
+
* path hashed inside the worktree exists nowhere else, so deleting it makes
|
|
12
|
+
* the recorded sha256 unverifiable forever.
|
|
13
|
+
*
|
|
14
|
+
* Evidence is kept in place rather than moved: re-validation reads the atom's
|
|
15
|
+
* `resolvedPath`, then the same path under the project root, and nothing else,
|
|
16
|
+
* so a moved file would fail it exactly like a deleted one.
|
|
17
|
+
*
|
|
18
|
+
* @task T13696
|
|
19
|
+
*/
|
|
20
|
+
import { createHash } from 'node:crypto';
|
|
21
|
+
import { existsSync, lstatSync, readdirSync, readFileSync, realpathSync, rmSync, writeFileSync, } from 'node:fs';
|
|
22
|
+
import { dirname, isAbsolute, join, relative, sep } from 'node:path';
|
|
23
|
+
import { gitSync } from './git.js';
|
|
24
|
+
/** shortcut: at most this many entries are read per scanned directory; raise it if a store outgrows it. */
|
|
25
|
+
const MAX_ENTRIES_PER_DIR = 5000;
|
|
26
|
+
/** Resolve symlinks when the path exists; otherwise `null`. */
|
|
27
|
+
function realOrNull(path) {
|
|
28
|
+
try {
|
|
29
|
+
return realpathSync(path);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** Whether `target` is `root` itself or strictly inside it (both already real paths). */
|
|
36
|
+
function isWithin(root, target) {
|
|
37
|
+
const rel = relative(root, target);
|
|
38
|
+
return rel === '' || (!rel.startsWith(`..${sep}`) && rel !== '..' && !isAbsolute(rel));
|
|
39
|
+
}
|
|
40
|
+
/** Directory entries as absolute paths, bounded; `[]` when unreadable. */
|
|
41
|
+
function entries(dir) {
|
|
42
|
+
try {
|
|
43
|
+
return readdirSync(dir)
|
|
44
|
+
.slice(0, MAX_ENTRIES_PER_DIR)
|
|
45
|
+
.map((name) => join(dir, name));
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Paths a checkout could link into another worktree through: `node_modules`
|
|
53
|
+
* itself, its top-level entries and `.pnpm` entries, and each workspace
|
|
54
|
+
* package's `node_modules`.
|
|
55
|
+
*/
|
|
56
|
+
function linkCandidates(checkout) {
|
|
57
|
+
const nm = join(checkout, 'node_modules');
|
|
58
|
+
const packageNms = entries(join(checkout, 'packages')).map((p) => join(p, 'node_modules'));
|
|
59
|
+
return [nm, ...entries(nm), ...entries(join(nm, '.pnpm')), ...packageNms];
|
|
60
|
+
}
|
|
61
|
+
/** Every other checkout that could hold a link: registered git worktrees and siblings under the worktree root. */
|
|
62
|
+
function otherCheckouts(worktreePath, gitRoot) {
|
|
63
|
+
const found = new Set(entries(dirname(worktreePath)));
|
|
64
|
+
try {
|
|
65
|
+
for (const line of gitSync(['worktree', 'list', '--porcelain'], gitRoot).split('\n')) {
|
|
66
|
+
if (line.startsWith('worktree '))
|
|
67
|
+
found.add(line.slice('worktree '.length));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// Not a git checkout: the sibling scan still runs.
|
|
72
|
+
}
|
|
73
|
+
return [...found];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Symlinks in other checkouts that resolve into `worktreePath`.
|
|
77
|
+
*
|
|
78
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
79
|
+
* @param gitRoot - Git root whose registered worktrees are scanned.
|
|
80
|
+
* @returns The linking paths (empty when nothing depends on it).
|
|
81
|
+
*
|
|
82
|
+
* @task T13696
|
|
83
|
+
*/
|
|
84
|
+
export function findWorktreeDependents(worktreePath, gitRoot) {
|
|
85
|
+
const self = realOrNull(worktreePath);
|
|
86
|
+
if (self === null)
|
|
87
|
+
return [];
|
|
88
|
+
const dependents = [];
|
|
89
|
+
for (const checkout of otherCheckouts(worktreePath, gitRoot)) {
|
|
90
|
+
const real = realOrNull(checkout);
|
|
91
|
+
if (real === null || isWithin(self, real))
|
|
92
|
+
continue;
|
|
93
|
+
for (const candidate of linkCandidates(checkout)) {
|
|
94
|
+
let isLink = false;
|
|
95
|
+
try {
|
|
96
|
+
isLink = lstatSync(candidate).isSymbolicLink();
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
if (!isLink)
|
|
102
|
+
continue;
|
|
103
|
+
const target = realOrNull(candidate);
|
|
104
|
+
if (target !== null && isWithin(self, target))
|
|
105
|
+
dependents.push(candidate);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return dependents;
|
|
109
|
+
}
|
|
110
|
+
/** sha256 of a file, or `null` when it cannot be read. */
|
|
111
|
+
function sha256Of(path) {
|
|
112
|
+
try {
|
|
113
|
+
return createHash('sha256').update(readFileSync(path)).digest('hex');
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/** The hashed files an evidence atom references, with the sha256 recorded at verify time. */
|
|
120
|
+
function hashedFiles(atom) {
|
|
121
|
+
if (atom.kind === 'files')
|
|
122
|
+
return atom.files;
|
|
123
|
+
if (atom.kind === 'test-run' || atom.kind === 'qa-run')
|
|
124
|
+
return [atom];
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Evidence files inside `worktreePath` with no byte-identical copy at the same
|
|
129
|
+
* relative path under `projectRoot`; with `projectRoot` `null`, every one.
|
|
130
|
+
*/
|
|
131
|
+
function unrecoverableEvidenceFiles(worktreePath, projectRoot, evidence) {
|
|
132
|
+
const self = realOrNull(worktreePath);
|
|
133
|
+
if (self === null)
|
|
134
|
+
return [];
|
|
135
|
+
const lost = new Map();
|
|
136
|
+
for (const atom of evidence) {
|
|
137
|
+
for (const file of hashedFiles(atom)) {
|
|
138
|
+
const abs = file.resolvedPath ?? (isAbsolute(file.path) ? file.path : null);
|
|
139
|
+
const real = abs === null ? null : realOrNull(abs);
|
|
140
|
+
if (real === null || !isWithin(self, real))
|
|
141
|
+
continue;
|
|
142
|
+
const counterpart = projectRoot === null ? null : join(projectRoot, relative(self, real));
|
|
143
|
+
if (counterpart === null ||
|
|
144
|
+
!existsSync(counterpart) ||
|
|
145
|
+
sha256Of(counterpart) !== file.sha256) {
|
|
146
|
+
lost.set(real, file.sha256);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return [...lost].map(([path, sha256]) => ({ path, sha256 }));
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Evidence files inside `worktreePath` that re-validation could not find once
|
|
154
|
+
* the worktree is gone: no byte-identical file at the same relative path under
|
|
155
|
+
* `projectRoot` (where a merged, committed file lands).
|
|
156
|
+
*
|
|
157
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
158
|
+
* @param projectRoot - The main checkout re-validation falls back to.
|
|
159
|
+
* @param evidence - The task's recorded evidence atoms.
|
|
160
|
+
* @returns Absolute paths of the files that would be lost.
|
|
161
|
+
*
|
|
162
|
+
* @task T13696
|
|
163
|
+
*/
|
|
164
|
+
export function findUnrecoverableEvidence(worktreePath, projectRoot, evidence) {
|
|
165
|
+
return unrecoverableEvidenceFiles(worktreePath, projectRoot, evidence).map((f) => f.path);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Why `worktreePath` must not be disposed, or `null` when nothing needs it.
|
|
169
|
+
*
|
|
170
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
171
|
+
* @param opts.gitRoot - Git root whose registered worktrees are scanned.
|
|
172
|
+
* @param opts.projectRoot - The main checkout evidence re-validation falls back to.
|
|
173
|
+
* @param opts.evidence - The task's recorded evidence atoms.
|
|
174
|
+
* @returns The blockers, or `null` when disposal is safe.
|
|
175
|
+
*
|
|
176
|
+
* @task T13696
|
|
177
|
+
*/
|
|
178
|
+
export function findDisposalBlockers(worktreePath, opts) {
|
|
179
|
+
const dependents = findWorktreeDependents(worktreePath, opts.gitRoot);
|
|
180
|
+
const evidence = findUnrecoverableEvidence(worktreePath, opts.projectRoot, opts.evidence ?? []);
|
|
181
|
+
return dependents.length > 0 || evidence.length > 0 ? { dependents, evidence } : null;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* One line naming what kept a worktree and why, for logs and `error` fields.
|
|
185
|
+
*
|
|
186
|
+
* @param worktreePath - The kept worktree.
|
|
187
|
+
* @param blockers - What kept it.
|
|
188
|
+
* @returns A human-readable explanation.
|
|
189
|
+
*
|
|
190
|
+
* @task T13696
|
|
191
|
+
*/
|
|
192
|
+
export function describeDisposalBlockers(worktreePath, blockers) {
|
|
193
|
+
const parts = [];
|
|
194
|
+
if (blockers.dependents.length > 0) {
|
|
195
|
+
parts.push(`${blockers.dependents.length} link(s) from other checkouts resolve into it (${blockers.dependents.join(', ')})`);
|
|
196
|
+
}
|
|
197
|
+
if (blockers.evidence.length > 0) {
|
|
198
|
+
parts.push(`${blockers.evidence.length} evidence file(s) exist only there (${blockers.evidence.join(', ')})`);
|
|
199
|
+
}
|
|
200
|
+
return `Worktree ${worktreePath} kept: ${parts.join('; ')}. Remove the links or re-verify, then dispose it.`;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Where the keep marker for `worktreePath` lives: beside the checkout, never
|
|
204
|
+
* inside it, so `git status` stays clean and nothing can commit it.
|
|
205
|
+
*
|
|
206
|
+
* @param worktreePath - The worktree the marker describes.
|
|
207
|
+
* @returns `<worktreePath>.keep.json`.
|
|
208
|
+
*
|
|
209
|
+
* @task T13700
|
|
210
|
+
*/
|
|
211
|
+
export function keepMarkerPath(worktreePath) {
|
|
212
|
+
return `${worktreePath.replace(/[\\/]+$/, '')}.keep.json`;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* The keep marker for `worktreePath`, or `null` when there is none or it is
|
|
216
|
+
* unreadable.
|
|
217
|
+
*
|
|
218
|
+
* @param worktreePath - The worktree to look up.
|
|
219
|
+
* @returns The marker, or `null`.
|
|
220
|
+
*
|
|
221
|
+
* @task T13700
|
|
222
|
+
*/
|
|
223
|
+
export function readKeepMarker(worktreePath) {
|
|
224
|
+
let parsed;
|
|
225
|
+
try {
|
|
226
|
+
parsed = JSON.parse(readFileSync(keepMarkerPath(worktreePath), 'utf-8'));
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
taskId: typeof parsed.taskId === 'string' ? parsed.taskId : null,
|
|
233
|
+
reason: typeof parsed.reason === 'string' ? parsed.reason : 'unknown',
|
|
234
|
+
projectRoot: typeof parsed.projectRoot === 'string' ? parsed.projectRoot : null,
|
|
235
|
+
dependents: Array.isArray(parsed.dependents) ? parsed.dependents : [],
|
|
236
|
+
evidence: Array.isArray(parsed.evidence) ? parsed.evidence : [],
|
|
237
|
+
keptAt: typeof parsed.keptAt === 'string' ? parsed.keptAt : '',
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* The one disposal guard every path that deletes a worktree calls first
|
|
242
|
+
* (T13700): dependents scan, evidence check, and the durable keep marker.
|
|
243
|
+
*
|
|
244
|
+
* Evidence from an earlier keep is re-checked from the marker, so a batch
|
|
245
|
+
* prune with no task store still honours it. While anything blocks, the marker
|
|
246
|
+
* is written (or refreshed) and the blockers returned; once nothing does, the
|
|
247
|
+
* marker is removed and `null` returned, so the caller may dispose.
|
|
248
|
+
*
|
|
249
|
+
* @param worktreePath - The worktree about to be disposed.
|
|
250
|
+
* @param opts.taskId - Owning task, recorded on a new marker.
|
|
251
|
+
* @param opts.reason - The disposal asking, recorded on a new marker.
|
|
252
|
+
* @param opts.gitRoot - Git root whose worktrees are scanned; defaults to the worktree itself.
|
|
253
|
+
* @param opts.projectRoot - Main checkout evidence falls back to; defaults to the marker's.
|
|
254
|
+
* @param opts.evidence - The task's recorded evidence atoms, when the caller has them.
|
|
255
|
+
* @param opts.dryRun - Report only; never write or remove the marker.
|
|
256
|
+
* @returns The blockers, or `null` when disposal is safe.
|
|
257
|
+
*
|
|
258
|
+
* @task T13700
|
|
259
|
+
*/
|
|
260
|
+
export function guardWorktreeDisposal(worktreePath, opts) {
|
|
261
|
+
const marker = readKeepMarker(worktreePath);
|
|
262
|
+
const projectRoot = opts.projectRoot ?? marker?.projectRoot ?? null;
|
|
263
|
+
const evidence = [...(opts.evidence ?? [])];
|
|
264
|
+
if (marker !== null && marker.evidence.length > 0) {
|
|
265
|
+
evidence.push({
|
|
266
|
+
kind: 'files',
|
|
267
|
+
files: marker.evidence.map((f) => ({ ...f, resolvedPath: f.path })),
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
const dependents = findWorktreeDependents(worktreePath, opts.gitRoot ?? worktreePath);
|
|
271
|
+
const lost = unrecoverableEvidenceFiles(worktreePath, projectRoot, evidence);
|
|
272
|
+
const blockers = dependents.length > 0 || lost.length > 0
|
|
273
|
+
? { dependents, evidence: lost.map((f) => f.path) }
|
|
274
|
+
: null;
|
|
275
|
+
if (opts.dryRun === true)
|
|
276
|
+
return blockers;
|
|
277
|
+
try {
|
|
278
|
+
if (blockers !== null) {
|
|
279
|
+
const next = {
|
|
280
|
+
taskId: marker?.taskId ?? opts.taskId,
|
|
281
|
+
reason: marker?.reason ?? opts.reason,
|
|
282
|
+
projectRoot,
|
|
283
|
+
dependents,
|
|
284
|
+
evidence: lost,
|
|
285
|
+
keptAt: marker?.keptAt || new Date().toISOString(),
|
|
286
|
+
};
|
|
287
|
+
writeFileSync(keepMarkerPath(worktreePath), `${JSON.stringify(next, null, 2)}\n`, 'utf-8');
|
|
288
|
+
}
|
|
289
|
+
else if (marker !== null) {
|
|
290
|
+
rmSync(keepMarkerPath(worktreePath), { force: true });
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// The marker is a record, not the guard: the scan above already decided.
|
|
295
|
+
}
|
|
296
|
+
return blockers;
|
|
297
|
+
}
|
|
298
|
+
//# sourceMappingURL=worktree-dependents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree-dependents.js","sourceRoot":"","sources":["../src/worktree-dependents.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-destroy.d.ts","sourceRoot":"","sources":["../src/worktree-destroy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"worktree-destroy.d.ts","sourceRoot":"","sources":["../src/worktree-destroy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAUzF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAuNhC"}
|
package/dist/worktree-destroy.js
CHANGED
|
@@ -14,6 +14,7 @@ import { countUnmergedCommits, getGitRoot, gitSilent, gitSync } from './git.js';
|
|
|
14
14
|
import { destroyWorktree as napiDestroyWorktree } from './napi-binding.js';
|
|
15
15
|
import { computeProjectHash, resolveTaskWorktreePath } from './paths.js';
|
|
16
16
|
import { appendWorktreeAuditLog, removeWorktreeFromSentinelIndex } from './worktree-audit.js';
|
|
17
|
+
import { describeDisposalBlockers, guardWorktreeDisposal } from './worktree-dependents.js';
|
|
17
18
|
import { runWorktreeHooks } from './worktree-hooks.js';
|
|
18
19
|
import { locateTaskWorktree } from './worktree-locate.js';
|
|
19
20
|
import { releaseWorktreeTaskLock } from './worktree-lock.js';
|
|
@@ -79,6 +80,39 @@ export async function destroyWorktree(projectRoot, options) {
|
|
|
79
80
|
hookResults,
|
|
80
81
|
};
|
|
81
82
|
}
|
|
83
|
+
// T13696: never delete files something outside the worktree still needs —
|
|
84
|
+
// a sibling's symlinked node_modules, or evidence that exists only here.
|
|
85
|
+
if (existsSync(worktreePath)) {
|
|
86
|
+
const kept = guardWorktreeDisposal(worktreePath, {
|
|
87
|
+
taskId,
|
|
88
|
+
reason: options.reason ?? 'manual',
|
|
89
|
+
gitRoot,
|
|
90
|
+
projectRoot,
|
|
91
|
+
evidence: options.evidence,
|
|
92
|
+
});
|
|
93
|
+
if (kept !== null) {
|
|
94
|
+
const message = describeDisposalBlockers(worktreePath, kept);
|
|
95
|
+
appendWorktreeAuditLog(projectRoot, {
|
|
96
|
+
action: 'destroy',
|
|
97
|
+
xdgPath: worktreePath,
|
|
98
|
+
taskId,
|
|
99
|
+
branch,
|
|
100
|
+
reason: options.reason ?? 'manual',
|
|
101
|
+
success: false,
|
|
102
|
+
error: message,
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
taskId,
|
|
106
|
+
worktreeRemoved: false,
|
|
107
|
+
branchDeleted: false,
|
|
108
|
+
error: message,
|
|
109
|
+
dirty,
|
|
110
|
+
force,
|
|
111
|
+
hookResults,
|
|
112
|
+
kept,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
82
116
|
// Step 2: Run pre-remove hooks.
|
|
83
117
|
if (hooks.length > 0 && existsSync(worktreePath)) {
|
|
84
118
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-destroy.js","sourceRoot":"","sources":["../src/worktree-destroy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worktree-destroy.js","sourceRoot":"","sources":["../src/worktree-destroy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-prune.d.ts","sourceRoot":"","sources":["../src/worktree-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAEL,cAAc,IAAI,SAAS,EAE5B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"worktree-prune.d.ts","sourceRoot":"","sources":["../src/worktree-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAEL,cAAc,IAAI,SAAS,EAE5B,MAAM,mBAAmB,CAAC;AAM3B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,oBAAoB,CA4DnF;AAmaD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,GACxB,UAAU,CAAC,OAAO,SAAS,CAAC,GAAG,IAAI,CAMrC"}
|
package/dist/worktree-prune.js
CHANGED
|
@@ -24,12 +24,13 @@
|
|
|
24
24
|
* @task T10204
|
|
25
25
|
*/
|
|
26
26
|
import { execFileSync } from 'node:child_process';
|
|
27
|
-
import { appendFileSync, existsSync, mkdirSync, readdirSync } from 'node:fs';
|
|
27
|
+
import { appendFileSync, existsSync, mkdirSync, readdirSync, statSync } from 'node:fs';
|
|
28
28
|
import { join } from 'node:path';
|
|
29
29
|
import { getGitRoot, gitSilent } from './git.js';
|
|
30
30
|
import { destroyWorktree as napiDestroyWorktree, pruneWorktrees as napiPrune, removeDir as napiRemoveDir, } from './napi-binding.js';
|
|
31
31
|
import { computeProjectHash, resolveWorktreeRootForHash } from './paths.js';
|
|
32
32
|
import { appendWorktreeAuditLog, removeWorktreeFromSentinelIndex } from './worktree-audit.js';
|
|
33
|
+
import { describeDisposalBlockers, guardWorktreeDisposal } from './worktree-dependents.js';
|
|
33
34
|
import { releaseWorktreeTaskLock } from './worktree-lock.js';
|
|
34
35
|
/**
|
|
35
36
|
* Prune orphaned agent worktrees for a project.
|
|
@@ -164,6 +165,14 @@ function safeReaddir(dir) {
|
|
|
164
165
|
*/
|
|
165
166
|
function classifyPruneCandidate(entry, preserveTaskIds, idleDays, worktreeRoot) {
|
|
166
167
|
const path = join(worktreeRoot, entry);
|
|
168
|
+
// Only directories are worktrees; a sibling file (e.g. a `.keep.json` marker) never is.
|
|
169
|
+
try {
|
|
170
|
+
if (!statSync(path).isDirectory())
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
167
176
|
if (preserveTaskIds !== undefined) {
|
|
168
177
|
// T11996: entries in the preserve set are NEVER eligible for pruning,
|
|
169
178
|
// regardless of idle age. Idle-age is only applied to orphan entries
|
|
@@ -341,6 +350,13 @@ function quarantineWorktreeDir(worktreePath, taskId, projectRoot, reason) {
|
|
|
341
350
|
*/
|
|
342
351
|
function pruneSingleEntry(decision, gitRoot, projectRoot, removed, quarantined, errors) {
|
|
343
352
|
const { taskId, path, reason } = decision;
|
|
353
|
+
// T13696/T13700: never delete a worktree another checkout links into, or
|
|
354
|
+
// one an earlier disposal kept (its marker's evidence is re-checked here).
|
|
355
|
+
const kept = guardWorktreeDisposal(path, { taskId, reason, gitRoot, projectRoot });
|
|
356
|
+
if (kept !== null) {
|
|
357
|
+
errors.push({ path, reason: describeDisposalBlockers(path, kept) });
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
344
360
|
// T11996: Dirty/unpushed guard — quarantine instead of deleting.
|
|
345
361
|
const dirty = isWorktreeDirty(path);
|
|
346
362
|
const unpushed = dirty ? false : hasUnpushedCommits(path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-prune.js","sourceRoot":"","sources":["../src/worktree-prune.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worktree-prune.js","sourceRoot":"","sources":["../src/worktree-prune.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.10.
|
|
3
|
+
"version": "2026.10.13",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Native CLEO worktree backend SDK",
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
"author": "CLEO Code <hello@cleocode.dev>",
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@cleocode/contracts": "2026.10.
|
|
29
|
-
"@cleocode/paths": "2026.10.
|
|
28
|
+
"@cleocode/contracts": "2026.10.13",
|
|
29
|
+
"@cleocode/paths": "2026.10.13"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "^24.3.0",
|
|
33
33
|
"typescript": "^6.0.2",
|
|
34
34
|
"vitest": "^4.1.4",
|
|
35
|
-
"@cleocode/core": "2026.10.
|
|
35
|
+
"@cleocode/core": "2026.10.13"
|
|
36
36
|
},
|
|
37
37
|
"repository": {
|
|
38
38
|
"type": "git",
|