@claudexor/workspace 5.0.1 → 5.1.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.
Files changed (53) hide show
  1. package/dist/cleanup-fault.d.ts +9 -0
  2. package/dist/cleanup-fault.d.ts.map +1 -1
  3. package/dist/cleanup-fault.js +21 -0
  4. package/dist/cleanup-fault.js.map +1 -1
  5. package/dist/continuation-evidence.d.ts +66 -8
  6. package/dist/continuation-evidence.d.ts.map +1 -1
  7. package/dist/continuation-evidence.js +32 -14
  8. package/dist/continuation-evidence.js.map +1 -1
  9. package/dist/continuation-sources.d.ts +1 -1
  10. package/dist/directory-workspace.d.ts +6 -1
  11. package/dist/directory-workspace.d.ts.map +1 -1
  12. package/dist/directory-workspace.js +20 -0
  13. package/dist/directory-workspace.js.map +1 -1
  14. package/dist/envelope-recovery.d.ts +25 -0
  15. package/dist/envelope-recovery.d.ts.map +1 -1
  16. package/dist/envelope-recovery.js +61 -1
  17. package/dist/envelope-recovery.js.map +1 -1
  18. package/dist/git.d.ts +10 -3
  19. package/dist/git.d.ts.map +1 -1
  20. package/dist/git.js +39 -10
  21. package/dist/git.js.map +1 -1
  22. package/dist/index.d.ts +2 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/isolated-clone-content.d.ts +29 -0
  27. package/dist/isolated-clone-content.d.ts.map +1 -0
  28. package/dist/isolated-clone-content.js +103 -0
  29. package/dist/isolated-clone-content.js.map +1 -0
  30. package/dist/lanes.d.ts +4 -4
  31. package/dist/lanes.d.ts.map +1 -1
  32. package/dist/lanes.js +7 -7
  33. package/dist/lanes.js.map +1 -1
  34. package/dist/manager.d.ts +5 -11
  35. package/dist/manager.d.ts.map +1 -1
  36. package/dist/manager.js +21 -33
  37. package/dist/manager.js.map +1 -1
  38. package/dist/object-store-retire.d.ts +17 -0
  39. package/dist/object-store-retire.d.ts.map +1 -0
  40. package/dist/object-store-retire.js +74 -0
  41. package/dist/object-store-retire.js.map +1 -0
  42. package/dist/object-store.d.ts +4 -0
  43. package/dist/object-store.d.ts.map +1 -1
  44. package/dist/object-store.js +13 -2
  45. package/dist/object-store.js.map +1 -1
  46. package/dist/raw-patch.d.ts +19 -1
  47. package/dist/raw-patch.d.ts.map +1 -1
  48. package/dist/raw-patch.js +47 -24
  49. package/dist/raw-patch.js.map +1 -1
  50. package/dist/retained-envelopes.d.ts.map +1 -1
  51. package/dist/retained-envelopes.js +6 -2
  52. package/dist/retained-envelopes.js.map +1 -1
  53. package/package.json +5 -5
package/dist/manager.js CHANGED
@@ -2,6 +2,7 @@ import { existsSync, mkdtempSync, readdirSync, rmSync, writeFileSync } from "nod
2
2
  import { tmpdir } from "node:os";
3
3
  import { join, sep } from "node:path";
4
4
  import { captureObjectFacts as objectFacts } from "./git-transient-capture.js";
5
+ import { discardUnstartedEnvelope } from "./cleanup-fault.js";
5
6
  import { isolatedBaseCustody } from "./capture-objects.js";
6
7
  import { repositoryObjectFormat } from "./git-result.js";
7
8
  import { assertProjectObjectFormat } from "./object-store.js";
@@ -12,17 +13,14 @@ import { ensureLaneHomeEnv } from "./lanes.js";
12
13
  import { ensureHarnessHome, harnessHomeEnv } from "./harness-home.js";
13
14
  import { ArtifactOwnership } from "./artifact-ownership.js";
14
15
  import { captureDirectoryWorkspace, createDirectoryEnvelope, } from "./directory-workspace.js";
15
- import { processStartTime, readEnvelopeRecoveryRecord } from "./envelope-recovery.js";
16
+ import { envelopeBaseIn, physicalEnvelopeBase, processStartTime, readEnvelopeRecoveryRecord, } from "./envelope-recovery.js";
16
17
  import { isRetainedEnvelope, liveEnvelopeCustody, writeEnvelopeCustody, } from "./envelope-custody.js";
17
18
  import { snapshotLegacyDirectoryBaseline } from "./plain-diff.js";
18
19
  import { capturePlainDiff } from "./plain-diff-capture.js";
19
20
  import { CLAUDE_BRIDGE_BASENAME, bridgeCreatedMarkerMatches, ensureClaudeBridge, isGeneratedClaudeBridge, writeBridgeCreatedMarker, } from "./claude-bridge.js";
20
21
  import { branchDelete, captureWorkingTreeTransient, isolatedCloneAdd, isGitRepo, revParse, snapshotTree, statusPorcelain, stashCreate, worktreePrune, worktreeRemove, } from "./git.js";
21
- /**
22
- * Manages WorkspaceEnvelopes: an isolated Git checkout plus scoped HOME and
23
- * per-harness config dirs, and dirty-tree handling. Claudexor owns these
24
- * envelopes (it does not rely on a harness's native --worktree).
25
- */
22
+ /** Manages WorkspaceEnvelopes: an isolated Git checkout plus scoped HOME and per-harness
23
+ * config dirs, and dirty-tree handling; Claudexor owns them (no native --worktree). */
26
24
  export { processStartTime } from "./envelope-recovery.js";
27
25
  export class WorkspaceManager {
28
26
  repoRoot;
@@ -40,32 +38,18 @@ export class WorkspaceManager {
40
38
  this.repoRoot = repoRoot;
41
39
  this.runtimeRoot = options.runtimeRoot ?? projectRuntimeDir(repoRoot);
42
40
  this.projectRoot = options.projectRoot;
43
- this.artifactOwnership = new ArtifactOwnership((env) => join(this.envelopeBase(env.task_id, env.attempt_id), "artifact-created.json"));
41
+ this.artifactOwnership = new ArtifactOwnership((env) => join(this.baseOf(env), "artifact-created.json"));
44
42
  }
45
43
  workspacesDir() {
46
44
  return join(this.runtimeRoot, "workspaces");
47
45
  }
48
- /**
49
- * The scoped envelope base for a task/attempt. The sole on-disk root we
50
- * delete on dispose — so the ids MUST be path-safe segments and the resolved
51
- * base MUST stay inside the workspaces dir (a crafted `../` id could
52
- * otherwise turn dispose() into an arbitrary recursive delete).
53
- */
46
+ /** The envelope base under this manager's namespace (ids fenced, `envelopeBaseIn`). */
54
47
  envelopeBase(taskId, attemptId) {
55
- const idPattern = /^[A-Za-z0-9._-]+$/;
56
- for (const [label, id] of [
57
- ["taskId", taskId],
58
- ["attemptId", attemptId],
59
- ]) {
60
- if (!idPattern.test(id) || id === "." || id === "..") {
61
- throw new WorkspaceError(`${label} '${id}' is not a safe path segment`);
62
- }
63
- }
64
- const base = join(this.workspacesDir(), taskId, attemptId);
65
- if (!base.startsWith(this.workspacesDir() + sep)) {
66
- throw new WorkspaceError(`envelope base escapes the workspaces dir: ${base}`);
67
- }
68
- return base;
48
+ return envelopeBaseIn(this.workspacesDir(), taskId, attemptId);
49
+ }
50
+ /** Where `env` physically is: its recorded engine-owned base, else this namespace's. */
51
+ baseOf(env) {
52
+ return physicalEnvelopeBase(env, this.workspacesDir());
69
53
  }
70
54
  ensureArtifactDirectory(env) {
71
55
  return this.artifactOwnership.ensureDirectory(env);
@@ -83,6 +67,7 @@ export class WorkspaceManager {
83
67
  const base = this.envelopeBase(opts.taskId, opts.attemptId);
84
68
  const envelopeId = newId("env");
85
69
  const workspaceMode = opts.inPlace ? "in_place" : "isolated";
70
+ const madeHere = !existsSync(base); // only an envelope this call made is removed on refusal
86
71
  ensureDir(base);
87
72
  const homeDir = join(base, "home");
88
73
  const harnessConfigDirs = ensureHarnessHome(homeDir);
@@ -99,6 +84,7 @@ export class WorkspaceManager {
99
84
  envelope_id: envelopeId,
100
85
  workspace_mode: workspaceMode,
101
86
  workspace_kind: opts.workspaceKind,
87
+ execution_root: this.repoRoot,
102
88
  }) + "\n");
103
89
  if (opts.workspaceKind === "directory") {
104
90
  return createDirectoryEnvelope({
@@ -169,7 +155,9 @@ export class WorkspaceManager {
169
155
  // D2: a dirty base's own closure enters the project store BEFORE the clone,
170
156
  // whose second alternate is that store (never the user repo's).
171
157
  const storeObjects = await isolatedBaseCustody(this.repoRoot, this.projectRoot ?? this.repoRoot, baseSha, [base, ...(opts.custody ? [opts.custody.runDir] : [])]);
172
- await isolatedCloneAdd(this.repoRoot, path, branch, baseSha, storeObjects);
158
+ await isolatedCloneAdd(this.repoRoot, path, branch, baseSha, storeObjects).catch((error) => {
159
+ throw madeHere ? discardUnstartedEnvelope(base, error) : error;
160
+ });
173
161
  writeFileSync(join(base, "private-clone-v1"), "private Git authority\n");
174
162
  // AGENTS.md bridge (INV-113): the checkout omits the untracked project-root bridge,
175
163
  // envelope — a Claude Code candidate here would otherwise lack CLAUDE.md.
@@ -289,7 +277,7 @@ export class WorkspaceManager {
289
277
  // Non-git fallback: diff the best-effort cpSync baseline against the live
290
278
  // tree. Missing or failed capture is an INCOMPLETE capture, never a safe
291
279
  // no-change result.
292
- const baseline = join(this.envelopeBase(env.task_id, env.attempt_id), "baseline");
280
+ const baseline = join(this.baseOf(env), "baseline");
293
281
  return capturePlainDiff(baseline, env.repo_root, artifactRelative);
294
282
  }
295
283
  // Exclude the envelope-local generated CLAUDE.md bridge (INV-113) from the
@@ -331,7 +319,7 @@ export class WorkspaceManager {
331
319
  const owned = this.ownedArtifactRelativeDirectory(env);
332
320
  return captureDirectoryWorkspace({
333
321
  executionRoot: env.worktree_path,
334
- envelopeRoot: this.envelopeBase(env.task_id, env.attempt_id),
322
+ envelopeRoot: this.baseOf(env),
335
323
  runRoot,
336
324
  ...options,
337
325
  excludedPaths: owned ? [owned] : [],
@@ -342,7 +330,7 @@ export class WorkspaceManager {
342
330
  bridgeCreatedFact(env) {
343
331
  if (this.bridgeCreatedEnvelopes.has(env.id))
344
332
  return true;
345
- return bridgeCreatedMarkerMatches(this.envelopeBase(env.task_id, env.attempt_id), env.id);
333
+ return bridgeCreatedMarkerMatches(this.baseOf(env), env.id);
346
334
  }
347
335
  /** Keep this envelope on disk past `dispose()`: it holds the only exact copy
348
336
  * of candidate bytes (the private exact patch object could not be written). */
@@ -368,7 +356,7 @@ export class WorkspaceManager {
368
356
  if (inPlace && !keepArtifacts)
369
357
  this.artifactOwnership.removeDirectory(env);
370
358
  if (!inPlace && env.workspace_kind !== "directory") {
371
- const privateClone = existsSync(join(this.envelopeBase(env.task_id, env.attempt_id), "private-clone-v1"));
359
+ const privateClone = existsSync(join(this.baseOf(env), "private-clone-v1"));
372
360
  if (!privateClone) {
373
361
  try {
374
362
  await worktreeRemove(this.repoRoot, env.worktree_path);
@@ -392,7 +380,7 @@ export class WorkspaceManager {
392
380
  // under the external runtime workspaces root, so deriving from ids prevents
393
381
  // dispose() from ever deleting the live tree.
394
382
  try {
395
- rmSync(this.envelopeBase(env.task_id, env.attempt_id), { recursive: true, force: true });
383
+ rmSync(this.baseOf(env), { recursive: true, force: true });
396
384
  }
397
385
  catch {
398
386
  /* best-effort */
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Retire a STRICTLY empty engine-owned bare object store (#503), called by the
3
+ * pruner while it still holds the store's prune lock and found no live root
4
+ * record. The store is renamed aside in one step and rechecked there: when an
5
+ * import recorded a pending lease or root meanwhile, it is put back and kept.
6
+ * A later import creates a fresh store as for any project that never had one.
7
+ * Returns whether the store is gone.
8
+ */
9
+ export declare function retireEmptyObjectStore(store: string, cutoff: number): boolean;
10
+ /**
11
+ * A path that holds only the store's control directory and no repository: what
12
+ * an import's lease leaves when it raced a retirement. It is never a store (a
13
+ * store appears by one rename of a complete repository), so it is removed and
14
+ * the caller initializes a fresh store in its place.
15
+ */
16
+ export declare function clearStoreSkeleton(store: string): void;
17
+ //# sourceMappingURL=object-store-retire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-store-retire.d.ts","sourceRoot":"","sources":["../src/object-store-retire.ts"],"names":[],"mappings":"AAmCA;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAqB7E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAItD"}
@@ -0,0 +1,74 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { existsSync, readdirSync, renameSync, rmSync, statSync } from "node:fs";
3
+ import { join } from "node:path";
4
+ import { controlDir } from "./object-store-leases.js";
5
+ function entries(path) {
6
+ try {
7
+ return readdirSync(path);
8
+ }
9
+ catch {
10
+ return ["unreadable"];
11
+ }
12
+ }
13
+ function olderThan(path, cutoff) {
14
+ try {
15
+ return statSync(path).mtimeMs < cutoff;
16
+ }
17
+ catch {
18
+ return false;
19
+ }
20
+ }
21
+ /** No loose object, no pack, no pending import, no root record, nothing recent. */
22
+ function strictlyEmpty(store, cutoff) {
23
+ const objects = join(store, "objects");
24
+ const pending = controlDir(store, "pending");
25
+ const roots = controlDir(store, "roots");
26
+ return (entries(pending).length === 0 &&
27
+ entries(roots).length === 0 &&
28
+ entries(objects).every((name) => name === "info" || name === "pack") &&
29
+ entries(join(objects, "pack")).length === 0 &&
30
+ [store, objects, pending, roots].every((path) => olderThan(path, cutoff)));
31
+ }
32
+ /**
33
+ * Retire a STRICTLY empty engine-owned bare object store (#503), called by the
34
+ * pruner while it still holds the store's prune lock and found no live root
35
+ * record. The store is renamed aside in one step and rechecked there: when an
36
+ * import recorded a pending lease or root meanwhile, it is put back and kept.
37
+ * A later import creates a fresh store as for any project that never had one.
38
+ * Returns whether the store is gone.
39
+ */
40
+ export function retireEmptyObjectStore(store, cutoff) {
41
+ if (!existsSync(join(store, "objects")) || !strictlyEmpty(store, cutoff))
42
+ return false;
43
+ const aside = `${store}.retired-${randomUUID()}`;
44
+ try {
45
+ renameSync(store, aside);
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ if (entries(controlDir(aside, "pending")).length > 0 ||
51
+ entries(controlDir(aside, "roots")).length > 0) {
52
+ try {
53
+ renameSync(aside, store);
54
+ }
55
+ catch {
56
+ // The path was taken by a fresh store meanwhile; the aside keeps its records.
57
+ }
58
+ return false;
59
+ }
60
+ rmSync(aside, { recursive: true, force: true });
61
+ return true;
62
+ }
63
+ /**
64
+ * A path that holds only the store's control directory and no repository: what
65
+ * an import's lease leaves when it raced a retirement. It is never a store (a
66
+ * store appears by one rename of a complete repository), so it is removed and
67
+ * the caller initializes a fresh store in its place.
68
+ */
69
+ export function clearStoreSkeleton(store) {
70
+ const names = entries(store);
71
+ if (names.length > 0 && names.every((name) => name === "claudexor"))
72
+ rmSync(store, { recursive: true, force: true });
73
+ }
74
+ //# sourceMappingURL=object-store-retire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-store-retire.js","sourceRoot":"","sources":["../src/object-store-retire.ts"],"names":[],"mappings":"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"}
@@ -83,6 +83,8 @@ export declare function pruneProjectObjectStore(runtimeDir: string, options: {
83
83
  dryRun: boolean;
84
84
  graceMs?: number;
85
85
  retiredOwners?: ReadonlySet<string>;
86
+ /** Retire the store when it ends strictly empty (#503). */
87
+ retireEmpty?: boolean;
86
88
  }): Promise<{
87
89
  freedBytes: number;
88
90
  yielded: boolean;
@@ -103,6 +105,8 @@ export declare function pruneObjectStore(input: {
103
105
  objectFormat: GitObjectFormat;
104
106
  /** Owners retired by the calling retention pass (see liveRootRecords). */
105
107
  retiredOwners?: ReadonlySet<string>;
108
+ /** With no live root left, retire a strictly empty store (object-store-retire.ts). */
109
+ retireEmpty?: boolean;
106
110
  }): Promise<{
107
111
  freedBytes: number;
108
112
  yielded: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"object-store.d.ts","sourceRoot":"","sources":["../src/object-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-store.d.ts","sourceRoot":"","sources":["../src/object-store.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { projectRuntimeDir } from "@claudexor/util";
7
7
  import { gitObserved, GitOperationError } from "./git-observed.js";
8
8
  import { repositoryObjectFormat, repositoryObjectFormatOrNull } from "./git-result.js";
9
9
  import { liveRootRecords, retainedPairOf, writeRootRecord } from "./object-store-roots.js";
10
+ import { clearStoreSkeleton, retireEmptyObjectStore } from "./object-store-retire.js";
10
11
  import { acquirePruneLock, beginPendingRoots, controlDir, endPendingRoots, livePendingRecords, } from "./object-store-leases.js";
11
12
  import { missingObjects, packIndexObjectIds, transferObjects, } from "./object-transfer.js";
12
13
  /**
@@ -104,6 +105,7 @@ export async function ensureObjectStore(projectRoot, objectFormat) {
104
105
  if (!existsSync(join(store, "objects")) || !existsSync(join(store, "HEAD"))) {
105
106
  // A store takes its project's format, never one a foreign repository brings.
106
107
  await assertProjectObjectFormat(projectRoot, format);
108
+ clearStoreSkeleton(store);
107
109
  const pending = initializing.get(store) ?? initializeStore(store, format);
108
110
  initializing.set(store, pending);
109
111
  try {
@@ -158,8 +160,14 @@ async function closureBeyond(source, roots, boundary) {
158
160
  * pending record covers the import itself (two-flag protocol with prune).
159
161
  */
160
162
  export async function retainInObjectStore(input) {
161
- const { store } = await ensureObjectStore(input.projectRoot, input.objectFormat);
162
- const pending = await beginPendingRoots(store, input.roots);
163
+ let { store } = await ensureObjectStore(input.projectRoot, input.objectFormat);
164
+ let pending = await beginPendingRoots(store, input.roots);
165
+ if (!existsSync(join(store, "objects"))) {
166
+ // A strictly empty store was retired between ensure and this lease: make it again.
167
+ endPendingRoots(pending);
168
+ ({ store } = await ensureObjectStore(input.projectRoot, input.objectFormat));
169
+ pending = await beginPendingRoots(store, input.roots);
170
+ }
163
171
  try {
164
172
  const needed = await closureBeyond(input.source, input.roots, input.boundary);
165
173
  const target = storeEndpoint(store);
@@ -258,6 +266,7 @@ export async function pruneProjectObjectStore(runtimeDir, options) {
258
266
  dryRun: options.dryRun,
259
267
  objectFormat: await repositoryObjectFormat(store, storeEnv(store)),
260
268
  ...(options.retiredOwners ? { retiredOwners: options.retiredOwners } : {}),
269
+ ...(options.retireEmpty ? { retireEmpty: true } : {}),
261
270
  });
262
271
  }
263
272
  /** Plain-file mtime of an object's container (its loose file or its pack). */
@@ -374,6 +383,8 @@ export async function pruneObjectStore(input) {
374
383
  unlinkSync(pack);
375
384
  freedBytes += size;
376
385
  }
386
+ if (input.retireEmpty && !input.dryRun && roots.length === 0 && hold.stillHeld())
387
+ retireEmptyObjectStore(store, cutoff);
377
388
  return { freedBytes, yielded: false };
378
389
  }
379
390
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"object-store.js","sourceRoot":"","sources":["../src/object-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-store.js","sourceRoot":"","sources":["../src/object-store.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,28 @@
1
1
  import type { HarnessEvent, RawContextPacket, RawGitPatchEnvelope, RawPatchRefusalCode } from "@claudexor/schema";
2
+ /** Whether another convergence round can repair a failure with this code. */
3
+ export declare function rawPatchRefusalIsModelCorrectable(code: string): boolean;
4
+ /** A raw patch, or the evidence it needs, the engine refused: the attempt's own
5
+ * typed failure, never a crashed process. This module throws it only for an
6
+ * answer already received; the code says what is wrong, and whether a request
7
+ * was sent is the attempt's usage evidence, never read from the code. */
2
8
  export declare class RawPatchRefusalError extends Error {
3
9
  readonly code: RawPatchRefusalCode;
10
+ readonly category: "harness_error" | "internal" | "validation";
4
11
  constructor(code: RawPatchRefusalCode, message: string);
5
12
  }
6
13
  export declare function captureRawPatchEnvelope(enabled: boolean, previous: RawGitPatchEnvelope | null, event: HarnessEvent): RawGitPatchEnvelope | null;
7
- /** Validate and materialize a raw patch only inside its isolated candidate tree. */
14
+ /** The exact tree a raw round starts from (#551): what this worktree holds now, as
15
+ * capture would record it (tracked and untracked, without ignored files), read
16
+ * through a scratch index so neither the worktree's index nor HEAD moves. It equals
17
+ * the run's base tree until a round changes something. */
18
+ export declare function rawCandidateTree(worktreePath: string): Promise<string>;
19
+ /**
20
+ * Validate and materialize a raw patch only inside its isolated candidate tree.
21
+ * `baseCommitSha` is the run's delivery base, which never moves. The patch applies
22
+ * to the packet's exact tree, and that tree must be what the worktree holds now:
23
+ * a candidate changed since the packet was sent, a tree the packet does not name
24
+ * or a commit that is not the run's base is refused before anything is written.
25
+ */
8
26
  export declare function consumeRawPatchEnvelope(input: {
9
27
  repoRoot: string;
10
28
  worktreePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"raw-patch.d.ts","sourceRoot":"","sources":["../src/raw-patch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAI3B,qBAAa,oBAAqB,SAAQ,KAAK;aAE3B,IAAI,EAAE,mBAAmB;IAD3C,YACkB,IAAI,EAAE,mBAAmB,EACzC,OAAO,EAAE,MAAM,EAIhB;CACF;AAuBD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,EACpC,KAAK,EAAE,YAAY,GAClB,mBAAmB,GAAG,IAAI,CAS5B;AAED,oFAAoF;AACpF,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACtC,GAAG,OAAO,CAAC;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAuH3C"}
1
+ {"version":3,"file":"raw-patch.d.ts","sourceRoot":"","sources":["../src/raw-patch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAe3B,6EAA6E;AAC7E,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvE;AAED;;;yEAGyE;AACzE,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,IAAI,EAAE,mBAAmB;IAF3C,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/D,YACkB,IAAI,EAAE,mBAAmB,EACzC,OAAO,EAAE,MAAM,EAShB;CACF;AAuBD,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,EACpC,KAAK,EAAE,YAAY,GAClB,mBAAmB,GAAG,IAAI,CAS5B;AAED;;;0DAG0D;AAC1D,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACtC,GAAG,OAAO,CAAC;IAAE,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CA6G3C"}
package/dist/raw-patch.js CHANGED
@@ -1,13 +1,37 @@
1
1
  import { isAbsolute, resolve } from "node:path";
2
2
  import { parseUnifiedDiff } from "@claudexor/core";
3
3
  import { sha256 } from "@claudexor/util";
4
- import { applyPatchProtected, git, materializePatchTree, revParse } from "./git.js";
4
+ import { applyPatchProtected, materializePatchTree, revParse, snapshotTree } from "./git.js";
5
+ /** What the model's own patch got wrong, so a later round can correct it. Every
6
+ * other refusal is an impossible state, isolation or digest fact no round repairs. */
7
+ const MODEL_CORRECTABLE = new Set([
8
+ "raw_patch_path_traversal",
9
+ "raw_patch_outside_scope",
10
+ "raw_patch_stale_preimage",
11
+ "raw_patch_binary_unsupported",
12
+ "raw_patch_truncated",
13
+ "raw_patch_apply_failed",
14
+ ]);
15
+ /** Whether another convergence round can repair a failure with this code. */
16
+ export function rawPatchRefusalIsModelCorrectable(code) {
17
+ return MODEL_CORRECTABLE.has(code);
18
+ }
19
+ /** A raw patch, or the evidence it needs, the engine refused: the attempt's own
20
+ * typed failure, never a crashed process. This module throws it only for an
21
+ * answer already received; the code says what is wrong, and whether a request
22
+ * was sent is the attempt's usage evidence, never read from the code. */
5
23
  export class RawPatchRefusalError extends Error {
6
24
  code;
25
+ category;
7
26
  constructor(code, message) {
8
27
  super(message);
9
28
  this.code = code;
10
29
  this.name = "RawPatchRefusalError";
30
+ this.category = MODEL_CORRECTABLE.has(code)
31
+ ? "harness_error"
32
+ : code === "raw_context_exceeds_window"
33
+ ? "validation"
34
+ : "internal";
11
35
  }
12
36
  }
13
37
  function refuse(code, detail) {
@@ -38,7 +62,20 @@ export function captureRawPatchEnvelope(enabled, previous, event) {
38
62
  // still enforced by consumeRawPatchEnvelope.
39
63
  return event.patch_envelope;
40
64
  }
41
- /** Validate and materialize a raw patch only inside its isolated candidate tree. */
65
+ /** The exact tree a raw round starts from (#551): what this worktree holds now, as
66
+ * capture would record it (tracked and untracked, without ignored files), read
67
+ * through a scratch index so neither the worktree's index nor HEAD moves. It equals
68
+ * the run's base tree until a round changes something. */
69
+ export async function rawCandidateTree(worktreePath) {
70
+ return revParse(worktreePath, `${await snapshotTree(worktreePath)}^{tree}`);
71
+ }
72
+ /**
73
+ * Validate and materialize a raw patch only inside its isolated candidate tree.
74
+ * `baseCommitSha` is the run's delivery base, which never moves. The patch applies
75
+ * to the packet's exact tree, and that tree must be what the worktree holds now:
76
+ * a candidate changed since the packet was sent, a tree the packet does not name
77
+ * or a commit that is not the run's base is refused before anything is written.
78
+ */
42
79
  export async function consumeRawPatchEnvelope(input) {
43
80
  const { repoRoot, worktreePath, baseCommitSha, context, envelope } = input;
44
81
  if (!context || !envelope)
@@ -49,33 +86,19 @@ export async function consumeRawPatchEnvelope(input) {
49
86
  if (envelope.context_packet_hash !== context.packet_hash) {
50
87
  refuse("raw_patch_missing_evidence", "response does not bind the supplied context packet");
51
88
  }
52
- const actualBaseTree = await revParse(repoRoot, `${baseCommitSha}^{tree}`);
53
89
  if (context.base_commit_sha !== baseCommitSha ||
54
- context.base_tree_sha !== actualBaseTree ||
55
- envelope.base_tree_sha !== actualBaseTree) {
56
- refuse("raw_patch_base_mismatch", "patch and context do not bind the candidate base tree");
90
+ envelope.base_tree_sha !== context.base_tree_sha) {
91
+ refuse("raw_patch_base_mismatch", "patch and context do not bind the run's base and one tree");
57
92
  }
58
- let worktreeBaseTree;
93
+ let worktreeTree;
59
94
  try {
60
- worktreeBaseTree = await revParse(worktreePath, "HEAD^{tree}");
95
+ worktreeTree = await rawCandidateTree(worktreePath);
61
96
  }
62
97
  catch {
63
- refuse("raw_patch_requires_isolation", "isolated worktree base could not be verified");
64
- }
65
- if (worktreeBaseTree !== actualBaseTree) {
66
- refuse("raw_patch_base_mismatch", "isolated worktree HEAD does not match the bound base tree");
67
- }
68
- const worktreeStatus = await git(worktreePath, [
69
- "status",
70
- "--porcelain=v1",
71
- "-z",
72
- "--untracked-files=all",
73
- ]);
74
- if (worktreeStatus.code !== 0) {
75
- refuse("raw_patch_requires_isolation", "isolated worktree status could not be verified");
98
+ refuse("raw_patch_requires_isolation", "isolated worktree tree could not be verified");
76
99
  }
77
- if (worktreeStatus.stdout.length !== 0) {
78
- refuse("raw_patch_requires_isolation", "isolated worktree must be clean before raw apply");
100
+ if (worktreeTree !== context.base_tree_sha) {
101
+ refuse("raw_patch_base_mismatch", "isolated worktree no longer holds the packet's exact tree");
79
102
  }
80
103
  if (sha256(envelope.patch) !== envelope.patch_hash) {
81
104
  refuse("raw_patch_digest_mismatch", "patch_hash does not match the exact patch bytes");
@@ -143,7 +166,7 @@ export async function consumeRawPatchEnvelope(input) {
143
166
  }
144
167
  let materializedTreeSha;
145
168
  try {
146
- materializedTreeSha = await materializePatchTree(repoRoot, baseCommitSha, envelope.patch);
169
+ materializedTreeSha = await materializePatchTree(worktreePath, context.base_tree_sha, envelope.patch);
147
170
  }
148
171
  catch (error) {
149
172
  refuse("raw_patch_apply_failed", error instanceof Error ? error.message : String(error));