@claudexor/workspace 3.19.0 → 3.22.0
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/anchor-store.d.ts +27 -0
- package/dist/anchor-store.d.ts.map +1 -1
- package/dist/anchor-store.js +38 -0
- package/dist/anchor-store.js.map +1 -1
- package/dist/continuation-sources.d.ts +30 -0
- package/dist/continuation-sources.d.ts.map +1 -0
- package/dist/continuation-sources.js +28 -0
- package/dist/continuation-sources.js.map +1 -0
- package/dist/envelope-custody.d.ts +39 -0
- package/dist/envelope-custody.d.ts.map +1 -0
- package/dist/envelope-custody.js +148 -0
- package/dist/envelope-custody.js.map +1 -0
- package/dist/git.d.ts +4 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +4 -5
- package/dist/git.js.map +1 -1
- package/dist/harness-home.d.ts +4 -0
- package/dist/harness-home.d.ts.map +1 -0
- package/dist/harness-home.js +25 -0
- package/dist/harness-home.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lanes.d.ts +3 -0
- package/dist/lanes.d.ts.map +1 -1
- package/dist/lanes.js +7 -12
- package/dist/lanes.js.map +1 -1
- package/dist/manager.d.ts +22 -4
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +46 -54
- package/dist/manager.js.map +1 -1
- package/dist/plain-diff.d.ts +3 -2
- package/dist/plain-diff.d.ts.map +1 -1
- package/dist/plain-diff.js +18 -16
- package/dist/plain-diff.js.map +1 -1
- package/dist/raw-patch.d.ts.map +1 -1
- package/dist/raw-patch.js +4 -3
- package/dist/raw-patch.js.map +1 -1
- package/dist/retained-envelopes.d.ts +35 -0
- package/dist/retained-envelopes.d.ts.map +1 -0
- package/dist/retained-envelopes.js +118 -0
- package/dist/retained-envelopes.js.map +1 -0
- package/dist/thread-tree.d.ts +3 -0
- package/dist/thread-tree.d.ts.map +1 -1
- package/dist/thread-tree.js +5 -0
- package/dist/thread-tree.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run-level view of retained envelopes: the pointer a holder run keeps to its
|
|
3
|
+
* retained envelope, retention, adoption by a `continueFrom` successor, and
|
|
4
|
+
* release (discard, apply, or the successor finishing). The custody record in
|
|
5
|
+
* the envelope base is the authority (`envelope-custody.ts`); the run-dir
|
|
6
|
+
* pointer is only its address, so a stale pointer reads as "nothing retained".
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, writeFileSync, } from "node:fs";
|
|
9
|
+
import { dirname, join } from "node:path";
|
|
10
|
+
import { SessionCapsule, } from "@claudexor/schema";
|
|
11
|
+
import { nowIso } from "@claudexor/util";
|
|
12
|
+
import { envelopeBaseOf, envelopeTreeChanged, liveEnvelopeCustody, readEnvelopeCustody, releaseEnvelopeCustody, retainEnvelopeCustody, stripRouteScopedAuth, writeEnvelopeCustody, } from "./envelope-custody.js";
|
|
13
|
+
import { processStartTime } from "./envelope-recovery.js";
|
|
14
|
+
import { WorkspaceManager } from "./manager.js";
|
|
15
|
+
/** Run-dir pointer to the run's retained envelope (address only). */
|
|
16
|
+
export const RETAINED_ENVELOPE_POINTER = "final/retained-envelope.json";
|
|
17
|
+
function pointerPath(runDir) {
|
|
18
|
+
return join(runDir, RETAINED_ENVELOPE_POINTER);
|
|
19
|
+
}
|
|
20
|
+
function writePointer(runDir, base) {
|
|
21
|
+
const path = pointerPath(runDir);
|
|
22
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
23
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
24
|
+
writeFileSync(tmp, JSON.stringify({ envelope_base: base }) + "\n");
|
|
25
|
+
renameSync(tmp, path);
|
|
26
|
+
}
|
|
27
|
+
/** The envelope `runId` holds in retained custody, or null. */
|
|
28
|
+
export function retainedEnvelopeOfRun(runDir, runId) {
|
|
29
|
+
try {
|
|
30
|
+
const pointer = JSON.parse(readFileSync(pointerPath(runDir), "utf8"));
|
|
31
|
+
if (typeof pointer.envelope_base !== "string")
|
|
32
|
+
return null;
|
|
33
|
+
const custody = readEnvelopeCustody(pointer.envelope_base);
|
|
34
|
+
return custody?.state === "retained" && custody.holder_run_id === runId ? custody : null;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Keep `env` for continuation under `holder` (custody first, then the
|
|
41
|
+
* pointer: a crash in between leaves a retained envelope the sweeper keeps). */
|
|
42
|
+
export function retainForContinuation(env, holder, cause) {
|
|
43
|
+
const custody = retainEnvelopeCustody(env, holder, cause);
|
|
44
|
+
writePointer(holder.runDir, envelopeBaseOf(env));
|
|
45
|
+
return custody;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Hand a retained envelope to its `continueFrom` successor: the same envelope
|
|
49
|
+
* (same path, base and files) now `live` under the successor, the crash-GC
|
|
50
|
+
* owner marker re-stamped to this process, and the predecessor's pointer
|
|
51
|
+
* dropped (its terminal facts stay; custody moved on). The caller verified
|
|
52
|
+
* that the record's holder is the successor's predecessor.
|
|
53
|
+
*/
|
|
54
|
+
export function adoptRetainedEnvelope(custody, successor) {
|
|
55
|
+
const env = custody.envelope;
|
|
56
|
+
const base = envelopeBaseOf(env);
|
|
57
|
+
writeFileSync(join(base, "owner.json"), JSON.stringify({
|
|
58
|
+
pid: process.pid,
|
|
59
|
+
started: processStartTime(process.pid),
|
|
60
|
+
created_at: env.created_at,
|
|
61
|
+
envelope_id: env.id,
|
|
62
|
+
workspace_mode: "isolated",
|
|
63
|
+
workspace_kind: env.workspace_kind,
|
|
64
|
+
adopted_at: nowIso(),
|
|
65
|
+
}) + "\n");
|
|
66
|
+
writeEnvelopeCustody(base, liveEnvelopeCustody(env, successor));
|
|
67
|
+
rmSync(pointerPath(custody.holder_run_dir), { force: true });
|
|
68
|
+
return env;
|
|
69
|
+
}
|
|
70
|
+
/** Explicit disposition of a retained envelope (discard, apply): custody and
|
|
71
|
+
* pointer end first, so the run stops reporting it; disk cleanup follows. */
|
|
72
|
+
export async function releaseRetainedEnvelope(custody) {
|
|
73
|
+
rmSync(pointerPath(custody.holder_run_dir), { force: true });
|
|
74
|
+
releaseEnvelopeCustody(envelopeBaseOf(custody.envelope));
|
|
75
|
+
await new WorkspaceManager(custody.envelope.repo_root).dispose(custody.envelope);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Crash recovery of an ownerless envelope (the startup sweeper, before any new
|
|
79
|
+
* work is accepted). `retained`: kept, its route-scoped auth stripped again.
|
|
80
|
+
* `live` with a dead owner: the holder run was interrupted mid-attempt; a tree
|
|
81
|
+
* that differs from its base, or has a session capsule, is retained (`host_restart`) when the
|
|
82
|
+
* holder run's directory still exists. Anything else (`null`) is an ordinary
|
|
83
|
+
* orphan the sweeper disposes as before.
|
|
84
|
+
*/
|
|
85
|
+
export async function recoverOrphanCustody(base) {
|
|
86
|
+
const custody = readEnvelopeCustody(base);
|
|
87
|
+
if (!custody)
|
|
88
|
+
return null;
|
|
89
|
+
if (custody.state === "retained") {
|
|
90
|
+
stripRouteScopedAuth(custody.envelope);
|
|
91
|
+
writePointer(custody.holder_run_dir, base);
|
|
92
|
+
return "kept";
|
|
93
|
+
}
|
|
94
|
+
if (!existsSync(custody.holder_run_dir))
|
|
95
|
+
return null;
|
|
96
|
+
if (!holderHasSession(custody.holder_run_dir) &&
|
|
97
|
+
(await envelopeTreeChanged(custody.envelope)) !== true)
|
|
98
|
+
return null;
|
|
99
|
+
retainForContinuation(custody.envelope, { runId: custody.holder_run_id, runDir: custody.holder_run_dir }, "host_restart");
|
|
100
|
+
return "retained";
|
|
101
|
+
}
|
|
102
|
+
function holderHasSession(runDir) {
|
|
103
|
+
const attempts = join(runDir, "attempts");
|
|
104
|
+
try {
|
|
105
|
+
return readdirSync(attempts).some((attempt) => {
|
|
106
|
+
try {
|
|
107
|
+
return SessionCapsule.safeParse(JSON.parse(readFileSync(join(attempts, attempt, "session-capsule.json"), "utf8"))).success;
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=retained-envelopes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retained-envelopes.js","sourceRoot":"","sources":["../src/retained-envelopes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,cAAc,GAIf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,qEAAqE;AACrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AAExE,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,IAAI,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,YAAY,CAAC,MAAc,EAAE,IAAY;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC;IACzC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACnE,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,KAAa;IACjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAEnE,CAAC;QACF,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC3D,OAAO,OAAO,EAAE,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;gFACgF;AAChF,MAAM,UAAU,qBAAqB,CACnC,GAAsB,EACtB,MAAyC,EACzC,KAA4B;IAE5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;IAC1D,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAwB,EACxB,SAA4C;IAE5C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,aAAa,CACX,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,EACxB,IAAI,CAAC,SAAS,CAAC;QACb,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC;QACtC,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,WAAW,EAAE,GAAG,CAAC,EAAE;QACnB,cAAc,EAAE,UAAU;QAC1B,cAAc,EAAE,GAAG,CAAC,cAAc;QAClC,UAAU,EAAE,MAAM,EAAE;KACrB,CAAC,GAAG,IAAI,CACV,CAAC;IACF,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED;6EAC6E;AAC7E,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAwB;IACpE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,sBAAsB,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzD,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IACE,CAAC,gBAAgB,CAAC,OAAO,CAAC,cAAc,CAAC;QACzC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI;QAEtD,OAAO,IAAI,CAAC;IACd,qBAAqB,CACnB,OAAO,CAAC,QAAQ,EAChB,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,EAChE,cAAc,CACf,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5C,IAAI,CAAC;gBACH,OAAO,cAAc,CAAC,SAAS,CAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAE,MAAM,CAAC,CAAC,CAClF,CAAC,OAAO,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/dist/thread-tree.d.ts
CHANGED
|
@@ -24,6 +24,9 @@ export declare function ensureThreadWorktree(projectRoot: string, threadId: stri
|
|
|
24
24
|
* then realign its daemon-owned worktree. The branch ref makes snapshot
|
|
25
25
|
* commits survive aggressive Git GC; the returned SHA is the journal base. */
|
|
26
26
|
export declare function advanceThreadWorktree(projectRoot: string, threadId: string, worktreePath: string, targetSha: string): Promise<string>;
|
|
27
|
+
/** Whether an isolated thread's directory is still on disk: its purge failed
|
|
28
|
+
* after the journal commit, and the next retention pass retries it. */
|
|
29
|
+
export declare function threadWorktreeDirExists(projectRoot: string, threadId: string): boolean;
|
|
27
30
|
/** Explicit purge of daemon-owned isolated-thread resources. Lifecycle
|
|
28
31
|
* authority lives in the journal; the generic orphan sweeper never guesses. */
|
|
29
32
|
export declare function purgeThreadWorktree(projectRoot: string, threadId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-tree.d.ts","sourceRoot":"","sources":["../src/thread-tree.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,wBAAwB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC7D;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CA2D/B;AAED;;8EAE8E;AAC9E,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;+EAC+E;AAC/E,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9F"}
|
|
1
|
+
{"version":3,"file":"thread-tree.d.ts","sourceRoot":"","sources":["../src/thread-tree.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE1D,MAAM,WAAW,oBAAoB;IACnC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,wBAAwB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC7D;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CA2D/B;AAED;;8EAE8E;AAC9E,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAED;uEACuE;AACvE,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtF;AAED;+EAC+E;AAC/E,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9F"}
|
package/dist/thread-tree.js
CHANGED
|
@@ -104,6 +104,11 @@ export async function advanceThreadWorktree(projectRoot, threadId, worktreePath,
|
|
|
104
104
|
}
|
|
105
105
|
return targetSha;
|
|
106
106
|
}
|
|
107
|
+
/** Whether an isolated thread's directory is still on disk: its purge failed
|
|
108
|
+
* after the journal commit, and the next retention pass retries it. */
|
|
109
|
+
export function threadWorktreeDirExists(projectRoot, threadId) {
|
|
110
|
+
return existsSync(join(projectRuntimeDir(projectRoot), "threads", threadId));
|
|
111
|
+
}
|
|
107
112
|
/** Explicit purge of daemon-owned isolated-thread resources. Lifecycle
|
|
108
113
|
* authority lives in the journal; the generic orphan sweeper never guesses. */
|
|
109
114
|
export async function purgeThreadWorktree(projectRoot, threadId) {
|
package/dist/thread-tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread-tree.js","sourceRoot":"","sources":["../src/thread-tree.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread-tree.js","sourceRoot":"","sources":["../src/thread-tree.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudexor/workspace",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.22.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "WorkspaceEnvelope manager: git worktree + scoped HOME/harness-config isolation + dirty policy.",
|
|
6
6
|
"type": "module",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@claudexor/
|
|
20
|
-
"@claudexor/
|
|
21
|
-
"@claudexor/util": "3.
|
|
19
|
+
"@claudexor/schema": "3.22.0",
|
|
20
|
+
"@claudexor/core": "3.22.0",
|
|
21
|
+
"@claudexor/util": "3.22.0"
|
|
22
22
|
},
|
|
23
23
|
"repository": {
|
|
24
24
|
"type": "git",
|