harness-dispatch 0.7.8 → 0.8.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 (114) hide show
  1. package/CHANGELOG.md +706 -1
  2. package/README.md +35 -5
  3. package/config.default.yaml +30 -2
  4. package/dist/auth.d.ts +29 -0
  5. package/dist/auth.d.ts.map +1 -1
  6. package/dist/auth.js +58 -5
  7. package/dist/auth.js.map +1 -1
  8. package/dist/bin.d.ts.map +1 -1
  9. package/dist/bin.js +449 -21
  10. package/dist/bin.js.map +1 -1
  11. package/dist/breaker-store.d.ts +25 -1
  12. package/dist/breaker-store.d.ts.map +1 -1
  13. package/dist/breaker-store.js +193 -25
  14. package/dist/breaker-store.js.map +1 -1
  15. package/dist/client-register.d.ts +147 -0
  16. package/dist/client-register.d.ts.map +1 -0
  17. package/dist/client-register.js +380 -0
  18. package/dist/client-register.js.map +1 -0
  19. package/dist/config/validation.d.ts +29 -0
  20. package/dist/config/validation.d.ts.map +1 -1
  21. package/dist/config/validation.js +88 -0
  22. package/dist/config/validation.js.map +1 -1
  23. package/dist/config.d.ts.map +1 -1
  24. package/dist/config.js +55 -2
  25. package/dist/config.js.map +1 -1
  26. package/dist/dispatch-log.d.ts +14 -0
  27. package/dist/dispatch-log.d.ts.map +1 -1
  28. package/dist/dispatch-log.js +3 -0
  29. package/dist/dispatch-log.js.map +1 -1
  30. package/dist/dispatchers/generic-cli.d.ts.map +1 -1
  31. package/dist/dispatchers/generic-cli.js +35 -0
  32. package/dist/dispatchers/generic-cli.js.map +1 -1
  33. package/dist/dispatchers/openai-compatible.d.ts +20 -4
  34. package/dist/dispatchers/openai-compatible.d.ts.map +1 -1
  35. package/dist/dispatchers/openai-compatible.js +145 -17
  36. package/dist/dispatchers/openai-compatible.js.map +1 -1
  37. package/dist/dispatchers/shared/rate-limit-headers.d.ts +4 -2
  38. package/dist/dispatchers/shared/rate-limit-headers.d.ts.map +1 -1
  39. package/dist/dispatchers/shared/rate-limit-headers.js +4 -2
  40. package/dist/dispatchers/shared/rate-limit-headers.js.map +1 -1
  41. package/dist/http/answer-stream.d.ts +52 -0
  42. package/dist/http/answer-stream.d.ts.map +1 -0
  43. package/dist/http/answer-stream.js +47 -0
  44. package/dist/http/answer-stream.js.map +1 -0
  45. package/dist/http/parse.d.ts.map +1 -1
  46. package/dist/http/parse.js +41 -0
  47. package/dist/http/parse.js.map +1 -1
  48. package/dist/http/server.d.ts.map +1 -1
  49. package/dist/http/server.js +102 -9
  50. package/dist/http/server.js.map +1 -1
  51. package/dist/jobs/store.d.ts.map +1 -1
  52. package/dist/jobs/store.js +45 -4
  53. package/dist/jobs/store.js.map +1 -1
  54. package/dist/jobs.d.ts +24 -0
  55. package/dist/jobs.d.ts.map +1 -1
  56. package/dist/jobs.js +101 -1
  57. package/dist/jobs.js.map +1 -1
  58. package/dist/mcp/config-hot-reload.d.ts.map +1 -1
  59. package/dist/mcp/config-hot-reload.js +10 -0
  60. package/dist/mcp/config-hot-reload.js.map +1 -1
  61. package/dist/mcp/near-miss-guard.d.ts +45 -0
  62. package/dist/mcp/near-miss-guard.d.ts.map +1 -0
  63. package/dist/mcp/near-miss-guard.js +98 -0
  64. package/dist/mcp/near-miss-guard.js.map +1 -0
  65. package/dist/mcp/server.d.ts.map +1 -1
  66. package/dist/mcp/server.js +36 -0
  67. package/dist/mcp/server.js.map +1 -1
  68. package/dist/mcp/tool-schemas.d.ts.map +1 -1
  69. package/dist/mcp/tool-schemas.js +21 -4
  70. package/dist/mcp/tool-schemas.js.map +1 -1
  71. package/dist/mcp/tools.d.ts +32 -0
  72. package/dist/mcp/tools.d.ts.map +1 -1
  73. package/dist/mcp/tools.js +41 -0
  74. package/dist/mcp/tools.js.map +1 -1
  75. package/dist/mcp-clients.d.ts +63 -0
  76. package/dist/mcp-clients.d.ts.map +1 -0
  77. package/dist/mcp-clients.js +117 -0
  78. package/dist/mcp-clients.js.map +1 -0
  79. package/dist/near-miss.d.ts +63 -0
  80. package/dist/near-miss.d.ts.map +1 -0
  81. package/dist/near-miss.js +132 -0
  82. package/dist/near-miss.js.map +1 -0
  83. package/dist/quota.d.ts +31 -1
  84. package/dist/quota.d.ts.map +1 -1
  85. package/dist/quota.js +68 -6
  86. package/dist/quota.js.map +1 -1
  87. package/dist/route-policy.d.ts +10 -0
  88. package/dist/route-policy.d.ts.map +1 -1
  89. package/dist/route-policy.js +20 -2
  90. package/dist/route-policy.js.map +1 -1
  91. package/dist/router.d.ts +61 -2
  92. package/dist/router.d.ts.map +1 -1
  93. package/dist/router.js +165 -29
  94. package/dist/router.js.map +1 -1
  95. package/dist/safety.d.ts.map +1 -1
  96. package/dist/safety.js +31 -1
  97. package/dist/safety.js.map +1 -1
  98. package/dist/status.d.ts +30 -21
  99. package/dist/status.d.ts.map +1 -1
  100. package/dist/status.js +152 -8
  101. package/dist/status.js.map +1 -1
  102. package/dist/types.d.ts +43 -1
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/working-dir.d.ts.map +1 -1
  105. package/dist/working-dir.js +16 -0
  106. package/dist/working-dir.js.map +1 -1
  107. package/dist/workspace-resolve.d.ts.map +1 -1
  108. package/dist/workspace-resolve.js +119 -15
  109. package/dist/workspace-resolve.js.map +1 -1
  110. package/dist/workspaces.d.ts +83 -0
  111. package/dist/workspaces.d.ts.map +1 -1
  112. package/dist/workspaces.js +288 -15
  113. package/dist/workspaces.js.map +1 -1
  114. package/package.json +4 -3
@@ -1,7 +1,7 @@
1
1
  import { execFile as execFileCb } from "node:child_process";
2
2
  import { createHash, randomUUID } from "node:crypto";
3
3
  import { constants as fsConstants, existsSync } from "node:fs";
4
- import { copyFile, mkdir, readdir, readFile, readlink, rm, stat, symlink, } from "node:fs/promises";
4
+ import { copyFile, mkdir, readdir, readFile, readlink, rm, stat, symlink, writeFile, } from "node:fs/promises";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
7
7
  import { promisify } from "node:util";
@@ -34,7 +34,17 @@ export function isIsolatedWorkspacePolicy(policy) {
34
34
  function safeName(value) {
35
35
  return value.replace(/[^A-Za-z0-9_.-]/g, "_").slice(0, 80) || "route";
36
36
  }
37
- function workspaceRunId(routeName) {
37
+ /**
38
+ * Exported for tests, which must build run directories with the SAME function
39
+ * that makes real ones rather than by hand.
40
+ *
41
+ * Three separate tests in this repo used a hand-written name the product
42
+ * cannot generate — run directories with four-character suffixes where a real
43
+ * one has eight hex — and each therefore asserted something about an input
44
+ * that never occurs. Two of them passed while the bug they claimed to cover
45
+ * was live. A fixture is only evidence if it is the thing.
46
+ */
47
+ export function workspaceRunId(routeName) {
38
48
  const stamp = new Date().toISOString().replace(/[:.]/g, "-");
39
49
  return `${stamp}-${process.pid}-${safeName(routeName)}-${randomUUID().slice(0, 8)}`;
40
50
  }
@@ -70,12 +80,22 @@ function resolveDir(workingDir) {
70
80
  * HARNESS_DISPATCH_WORKSPACES_DIR overrides it for anyone who wants the
71
81
  * workspaces on the project's volume.
72
82
  */
73
- /** The directory all per-project workspace roots hang off. */
74
- function workspacesBase() {
83
+ /**
84
+ * The directory all per-project workspace roots hang off.
85
+ *
86
+ * Exported because the apply-time dirty check has to know it too: with the
87
+ * override pointed inside the project — which README recommends, to keep the
88
+ * copy on one volume for reflinks — the workspaces directory is itself an
89
+ * untracked change, so `apply` refused on an otherwise pristine tree, every
90
+ * time. The same "feature blocked by its own leftovers" the recursion guard
91
+ * above was written for, one step further along.
92
+ */
93
+ export function workspacesBase() {
75
94
  return (process.env.HARNESS_DISPATCH_WORKSPACES_DIR ??
76
95
  path.join(os.tmpdir(), "harness-dispatch", "workspaces"));
77
96
  }
78
- function workspaceRootFor(originalWorkingDir) {
97
+ /** Exported for tests, for the same reason as `workspaceRunId`. */
98
+ export function workspaceRootFor(originalWorkingDir) {
79
99
  const base = workspacesBase();
80
100
  // The per-project segment applies to the override too. Without it, every
81
101
  // project pointed at one HARNESS_DISPATCH_WORKSPACES_DIR shared a flat
@@ -88,6 +108,56 @@ function workspaceRootFor(originalWorkingDir) {
88
108
  // basename stays in the name so the directory is still recognisable by eye.
89
109
  return path.join(base, `${safeName(path.basename(originalWorkingDir))}-${pathKey(originalWorkingDir)}`);
90
110
  }
111
+ /**
112
+ * Written into every project root this tool creates, so reclamation can delete
113
+ * a directory because it KNOWS it made it rather than because the name looks
114
+ * about right.
115
+ *
116
+ * The previous attempt matched the generated name shape, `-[0-9a-f]{8}$`. Eight
117
+ * decimal digits are valid hex, so any `<name>-<YYYYMMDD>` collided: a second
118
+ * acceptance pass planted `backup-20260401/data.bin` beside directories that
119
+ * survived and watched one dispatch delete it recursively. A heuristic cannot
120
+ * answer "did I create this" — only a mark can.
121
+ */
122
+ const ROOT_MARKER = ".harness-dispatch-root";
123
+ /**
124
+ * The shape `workspaceRunId` generates: an ISO stamp, pid, route, 8 hex.
125
+ * Used ONLY to recognise roots created before the marker existed, so those are
126
+ * still reclaimed instead of leaking forever.
127
+ */
128
+ const RUN_DIR_RE = /^\d{4}-\d{2}-\d{2}T[\d-]+Z-\d+-.+-[0-9a-f]{8}$/;
129
+ /** Record that this root is ours. Best effort: never fail a dispatch over it. */
130
+ async function markProjectRoot(root) {
131
+ try {
132
+ await mkdir(root, { recursive: true });
133
+ const marker = path.join(root, ROOT_MARKER);
134
+ if (!existsSync(marker)) {
135
+ await writeFile(marker, "Created by harness-dispatch. This directory and its dated run\n" +
136
+ "subdirectories are managed — and eventually deleted — by it.\n", "utf8");
137
+ }
138
+ }
139
+ catch {
140
+ // A root without its marker is merely not reclaimed automatically, which
141
+ // is the safe direction to fail in.
142
+ }
143
+ }
144
+ /**
145
+ * Is this directory one we created, and therefore ours to delete?
146
+ *
147
+ * The marker settles it. The fallback covers roots created before the marker
148
+ * existed: every child must be a generated run directory, and there must be at
149
+ * least one — an empty unmarked directory is somebody else's empty directory,
150
+ * not ours. A foreign directory passes only if everything inside it happens to
151
+ * be named like a timestamped run, which is not a thing that happens by
152
+ * accident. This deletes recursively and has now been wrong twice, so it takes
153
+ * positive evidence rather than the absence of a reason to stop.
154
+ */
155
+ function isOurProjectRoot(full, children) {
156
+ if (existsSync(path.join(full, ROOT_MARKER)))
157
+ return true;
158
+ const runs = children.filter((name) => name !== ROOT_MARKER);
159
+ return runs.length > 0 && runs.every((name) => RUN_DIR_RE.test(name));
160
+ }
91
161
  /** Short stable digest of a project path, to keep same-named projects apart. */
92
162
  function pathKey(dir) {
93
163
  return createHash("sha256").update(path.resolve(dir)).digest("hex").slice(0, 8);
@@ -121,6 +191,10 @@ function workspaceMaxAgeMs() {
121
191
  */
122
192
  async function pruneStaleCopyWorkspaces(root, copyProjectGitRoot) {
123
193
  const maxAgeMs = workspaceMaxAgeMs();
194
+ // Before the early return below: a project dispatching for the FIRST time
195
+ // has no root of its own to sweep, and that is exactly the caller most
196
+ // likely to be running on a machine full of other projects' leftovers.
197
+ await pruneAbandonedProjectRoots(workspacesBase(), root);
124
198
  let entries;
125
199
  try {
126
200
  entries = await readdir(root, { withFileTypes: true });
@@ -161,8 +235,94 @@ async function pruneStaleCopyWorkspaces(root, copyProjectGitRoot) {
161
235
  await git(["worktree", "prune"], copyProjectGitRoot).catch(() => undefined);
162
236
  }
163
237
  }
238
+ /**
239
+ * Reclaim the per-project directories of projects that never dispatch again.
240
+ *
241
+ * The sweep above only ever looks INSIDE one project's root, and only runs
242
+ * when a dispatch happens for that same project. So a project dispatched once
243
+ * and then renamed, deleted, or — most commonly — created as a temp directory
244
+ * by the test suite keeps its stale runs forever: the code that would reclaim
245
+ * them is reachable only by the project that no longer exists.
246
+ *
247
+ * Measured on the maintainer's machine before this existed: 840 project roots,
248
+ * 839 of them still holding run directories five days past a 24-hour
249
+ * retention window. This project has already lost a disk to leaked scratch
250
+ * directories once — tests/setup-env.ts records 2,605 orphans and 0 bytes free
251
+ * on a 931 GB volume — which is why an unbounded leak gets fixed rather than
252
+ * noted.
253
+ *
254
+ * Deliberately conservative, because this deletes directories nothing else is
255
+ * watching:
256
+ * - never the caller's own root, which is about to be written into;
257
+ * - only when EVERY run inside is past retention, so one live run keeps its
258
+ * project root alive;
259
+ * - an empty root is removed only if it carries our marker. Unmarked and
260
+ * empty means there is nothing to identify it by, and an unidentified
261
+ * directory is somebody else's — measured, because this line previously
262
+ * claimed empty roots are removed full stop, which stopped being true when
263
+ * ownership moved from a name shape to a marker;
264
+ * - best effort throughout — a prune failure must never fail a dispatch.
265
+ *
266
+ * A git_worktree root is left alone here. Removing one behind git's back
267
+ * strands `.git/worktrees` metadata, and the sweep above only knows how to
268
+ * unregister worktrees for the repository the CURRENT dispatch belongs to.
269
+ */
270
+ async function pruneAbandonedProjectRoots(base, currentRoot) {
271
+ const maxAgeMs = workspaceMaxAgeMs();
272
+ let entries;
273
+ try {
274
+ entries = await readdir(base, { withFileTypes: true });
275
+ }
276
+ catch {
277
+ return;
278
+ }
279
+ const now = Date.now();
280
+ for (const entry of entries) {
281
+ if (!entry.isDirectory())
282
+ continue;
283
+ const full = path.join(base, entry.name);
284
+ if (path.resolve(full) === path.resolve(currentRoot))
285
+ continue;
286
+ try {
287
+ const runs = await readdir(full, { withFileTypes: true });
288
+ // Age is not evidence of ownership, and this deletes recursively.
289
+ // HARNESS_DISPATCH_WORKSPACES_DIR is a setting the README actively
290
+ // recommends ("on the project's own volume, for instance"), so the base
291
+ // is not necessarily ours alone and anything else living there is
292
+ // somebody's data.
293
+ if (!isOurProjectRoot(full, runs.map((r) => r.name)))
294
+ continue;
295
+ let allStale = true;
296
+ for (const run of runs) {
297
+ if (run.name === ROOT_MARKER)
298
+ continue;
299
+ const runPath = path.join(full, run.name);
300
+ // A worktree run needs git's own removal; leave the whole project
301
+ // root to the owning repository rather than stranding metadata.
302
+ if (existsSync(path.join(runPath, "worktree"))) {
303
+ allStale = false;
304
+ break;
305
+ }
306
+ const info = await stat(runPath);
307
+ if (now - info.mtimeMs <= maxAgeMs) {
308
+ allStale = false;
309
+ break;
310
+ }
311
+ }
312
+ if (allStale)
313
+ await rm(full, { recursive: true, force: true });
314
+ }
315
+ catch {
316
+ // best effort — locked, vanished, or permission-denied entries are skipped
317
+ }
318
+ }
319
+ }
164
320
  async function pruneStaleGitWorktrees(gitRoot, root) {
165
321
  const maxAgeMs = workspaceMaxAgeMs();
322
+ // Same reclamation the copy path does, for a machine that only ever
323
+ // dispatches under git_worktree. Abandoned worktree roots are left alone by
324
+ // that sweep either way — see pruneAbandonedProjectRoots.
325
+ await pruneAbandonedProjectRoots(workspacesBase(), root);
166
326
  let entries;
167
327
  try {
168
328
  entries = await readdir(root, { withFileTypes: true });
@@ -227,7 +387,7 @@ function shouldExclude(relPath, direntName) {
227
387
  * was spelled, and it covers the whole workspaces root rather than this run's
228
388
  * directory alone — a sibling run's workspace is no more copyable than our own.
229
389
  */
230
- function isUnderOrEqual(candidate, root) {
390
+ export function isUnderOrEqual(candidate, root) {
231
391
  const c = path.resolve(candidate);
232
392
  const r = path.resolve(root);
233
393
  if (c === r)
@@ -279,7 +439,18 @@ async function copyLink(sourceRoot, destRoot, childRel, skipped) {
279
439
  // missing in-tree link is a far smaller problem than an escaping one.
280
440
  }
281
441
  }
282
- async function copyTree(sourceRoot, destRoot, rel = "", skipped = [], vanished = [], excludeRoots = []) {
442
+ async function copyTree(sourceRoot, destRoot, rel = "", skipped = [], vanished = [], excludeRoots = [],
443
+ /**
444
+ * EXCLUDED_DIRS entries that actually existed and were left out. Collected
445
+ * because the omission was invisible: `bin`, `dist`, `build`, `target`,
446
+ * `obj` and `.venv` are all on that list and all plausible SOURCE
447
+ * directories, and an acceptance pass watched a delegate "edit" a committed
448
+ * `bin/tool.sh` that was never in its workspace — the run then reported one
449
+ * changed file, the patch held one file, and apply landed one file, with
450
+ * nothing anywhere saying the rest of the tree had been withheld. The agent
451
+ * also reasons from an incomplete tree, which is the worse half.
452
+ */
453
+ excludedDirs = []) {
283
454
  const sourceDir = rel ? path.join(sourceRoot, rel) : sourceRoot;
284
455
  const destDir = rel ? path.join(destRoot, rel) : destRoot;
285
456
  await mkdir(destDir, { recursive: true });
@@ -288,12 +459,20 @@ async function copyTree(sourceRoot, destRoot, rel = "", skipped = [], vanished =
288
459
  const childRel = rel ? path.join(rel, entry.name) : entry.name;
289
460
  try {
290
461
  if (entry.isDirectory()) {
291
- if (shouldExclude(childRel, entry.name))
462
+ if (shouldExclude(childRel, entry.name)) {
463
+ // Only the name-list exclusions are reported. The workspaces-root
464
+ // ones below are this tool's own scratch space and mean nothing to
465
+ // the user; `.git` is excluded on every branch and would be noise on
466
+ // every single run.
467
+ if (EXCLUDED_DIRS.has(entry.name) && entry.name !== ".git") {
468
+ excludedDirs.push(childRel.split(path.sep).join("/"));
469
+ }
292
470
  continue;
471
+ }
293
472
  const childAbs = path.join(sourceDir, entry.name);
294
473
  if (excludeRoots.some((root) => isUnderOrEqual(childAbs, root)))
295
474
  continue;
296
- await copyTree(sourceRoot, destRoot, childRel, skipped, vanished, excludeRoots);
475
+ await copyTree(sourceRoot, destRoot, childRel, skipped, vanished, excludeRoots, excludedDirs);
297
476
  continue;
298
477
  }
299
478
  if (entry.isFile()) {
@@ -499,17 +678,17 @@ async function prepareCopyWorkspace(routeName, workingDir, files) {
499
678
  .then((out) => out || undefined)
500
679
  .catch(() => undefined);
501
680
  await pruneStaleCopyWorkspaces(root, projectGitRoot);
681
+ await markProjectRoot(root);
502
682
  const workspaceRoot = path.join(root, workspaceRunId(routeName));
503
683
  const effectiveWorkingDir = path.join(workspaceRoot, "workspace");
504
684
  const skippedLinks = [];
505
685
  const vanishedFiles = [];
686
+ const excludedDirs = [];
506
687
  // The whole workspaces BASE, not this run's directory and not even this
507
688
  // project's root under it. A sibling run's workspace is no more copyable
508
689
  // than our own, and another project's is no more copyable than a sibling's —
509
690
  // all of them sit inside the source tree whenever the override points there.
510
- await copyTree(originalWorkingDir, effectiveWorkingDir, "", skippedLinks, vanishedFiles, [
511
- workspacesBase(),
512
- ]);
691
+ await copyTree(originalWorkingDir, effectiveWorkingDir, "", skippedLinks, vanishedFiles, [workspacesBase()], excludedDirs);
513
692
  const before = await fingerprintTree(effectiveWorkingDir);
514
693
  return {
515
694
  policy: "copy",
@@ -542,6 +721,16 @@ async function prepareCopyWorkspace(routeName, workingDir, files) {
542
721
  `directory that was being written to.`,
543
722
  ]
544
723
  : []),
724
+ ...(excludedDirs.length > 0
725
+ ? [
726
+ `${excludedDirs.length} director(ies) were NOT copied into the workspace and were ` +
727
+ `invisible to the agent: ${excludedDirs.slice(0, 8).join(", ")}` +
728
+ `${excludedDirs.length > 8 ? ", …" : ""}. These names are excluded as build ` +
729
+ `output or dependencies, but some of them (bin, dist, build, target, obj) are ` +
730
+ `real source directories in some projects — if the task needed one, the agent ` +
731
+ `worked from an incomplete tree and no change to it can appear in the patch.`,
732
+ ]
733
+ : []),
545
734
  ...(skippedLinks.length > 0
546
735
  ? [
547
736
  `Dropped ${skippedLinks.length} symlink(s) pointing outside the workspace, which would ` +
@@ -554,20 +743,55 @@ async function prepareCopyWorkspace(routeName, workingDir, files) {
554
743
  },
555
744
  };
556
745
  }
746
+ /**
747
+ * Decline git's OPTIONAL locks.
748
+ *
749
+ * git runs background maintenance, which creates and removes
750
+ * `.git/objects/maintenance.lock` underneath whatever else is reading the
751
+ * repository. A CI leg failed with `stat '.../maintenance.lock': No such file
752
+ * or directory` from an ordinary diff — the lock vanished mid-command. We only
753
+ * ever ask git to read, or to apply a patch we already hold, so declining
754
+ * optional locks costs nothing and removes a race we do not control.
755
+ */
756
+ export const GIT_ENV = { ...process.env, GIT_OPTIONAL_LOCKS: "0" };
557
757
  async function git(args, cwd) {
558
- const { stdout } = await execFile("git", args, { cwd, windowsHide: true });
758
+ const { stdout } = await execFile("git", args, { cwd, windowsHide: true, env: GIT_ENV });
559
759
  return String(stdout).trim();
560
760
  }
561
761
  async function prepareGitWorktreeWorkspace(routeName, workingDir, files) {
562
762
  const originalWorkingDir = resolveDir(workingDir);
563
- const gitRoot = await git(["rev-parse", "--show-toplevel"], originalWorkingDir);
763
+ // Preconditions answered as themselves, not as whatever git printed.
764
+ //
765
+ // The resolve path (`workspace diff`/`apply`) explains a missing git and a
766
+ // long path; the DISPATCH path had none of it, so the three ordinary ways
767
+ // this cannot start reached the caller as raw git internals with no route
768
+ // taken and no mention of the alternative — an acceptance pass measured
769
+ // `spawn git ENOENT`, `fatal: not a git repository`, and
770
+ // `fatal: ambiguous argument 'HEAD'` on a freshly-initialised project, which
771
+ // is an ordinary state rather than an error.
772
+ const gitRoot = await git(["rev-parse", "--show-toplevel"], originalWorkingDir).catch((err) => {
773
+ if (err?.code === "ENOENT") {
774
+ throw new Error("workspace_policy: git_worktree needs git on PATH, and it was not found. Install " +
775
+ "git, or use workspace_policy: copy, which needs no git. `doctor` reports whether " +
776
+ "it found one.");
777
+ }
778
+ throw new Error(`workspace_policy: git_worktree needs ${originalWorkingDir} to be inside a git ` +
779
+ `repository, and it is not. Use workspace_policy: copy for a directory that is not ` +
780
+ `version-controlled.`);
781
+ });
564
782
  const prefix = await git(["rev-parse", "--show-prefix"], originalWorkingDir);
565
783
  const gitWorkspaceRoot = gitWorkspaceRootFor(gitRoot);
566
784
  await pruneStaleGitWorktrees(gitRoot, gitWorkspaceRoot);
785
+ await markProjectRoot(gitWorkspaceRoot);
567
786
  const workspaceRoot = path.join(gitWorkspaceRoot, workspaceRunId(routeName));
568
787
  const worktreeRoot = path.join(workspaceRoot, "worktree");
569
788
  await mkdir(workspaceRoot, { recursive: true });
570
- const baseCommit = await git(["rev-parse", "HEAD"], gitRoot);
789
+ // A repository with no commits yet is an ordinary state, not a fault, and
790
+ // `git worktree add` has nothing to branch from in it.
791
+ const baseCommit = await git(["rev-parse", "HEAD"], gitRoot).catch(() => {
792
+ throw new Error(`workspace_policy: git_worktree needs at least one commit to branch a worktree from, ` +
793
+ `and ${gitRoot} has none yet. Make an initial commit, or use workspace_policy: copy.`);
794
+ });
571
795
  await git(["worktree", "add", "--detach", worktreeRoot, baseCommit], gitRoot);
572
796
  const effectiveWorkingDir = prefix ? path.join(worktreeRoot, prefix) : worktreeRoot;
573
797
  await stat(effectiveWorkingDir);
@@ -582,6 +806,55 @@ async function prepareGitWorktreeWorkspace(routeName, workingDir, files) {
582
806
  async finish(result) {
583
807
  const after = await fingerprintTree(worktreeRoot);
584
808
  const changedFiles = diffFingerprints(before, after);
809
+ // A failed attempt that changed nothing leaves nothing to inspect, and
810
+ // its worktree is a registration inside the USER's repository that
811
+ // retention will never reclaim — the sweep deliberately refuses to
812
+ // remove worktrees, because unregistering one needs git and only the
813
+ // owning repo can do it.
814
+ //
815
+ // So they accumulate per attempt, and the ones nobody knows about are
816
+ // the worst: a fallback arm that fails is not named in the response at
817
+ // all, so its worktree has no cleanupHint anywhere. An acceptance pass
818
+ // measured one HTTP request leaving TWO entries in `git worktree list`.
819
+ // This project has already paid for one unbounded directory leak.
820
+ //
821
+ // Only when the attempt both failed AND changed nothing. A failure that
822
+ // wrote files may still hold work worth recovering, and deleting that
823
+ // to tidy up would be the trade this codebase keeps refusing.
824
+ if (!result.success && changedFiles.length === 0) {
825
+ // The directory goes only if GIT let go of it first.
826
+ //
827
+ // The first version swallowed the result of `git worktree remove`,
828
+ // deleted the directory regardless, and reported "unregistered and
829
+ // removed" either way. When git fails — an index lock, a concurrent
830
+ // git operation — that strands `.git/worktrees/<name>` inside the
831
+ // user's repository, which is the exact outcome the comment above
832
+ // says this refuses to cause, while telling them it did not happen.
833
+ // An acceptance pass caught it by reading, inside the fix that
834
+ // introduced it.
835
+ const unregistered = await git(["worktree", "remove", "--force", worktreeRoot], gitRoot)
836
+ .then(() => true)
837
+ .catch(() => false);
838
+ if (unregistered) {
839
+ await rm(workspaceRoot, { recursive: true, force: true }).catch(() => undefined);
840
+ return attachWorkspace(result, {
841
+ policy: "git_worktree",
842
+ originalWorkingDir,
843
+ effectiveWorkingDir,
844
+ baseCommit,
845
+ isolated: true,
846
+ securityBoundary: "project_state_and_process_cwd",
847
+ changedFiles,
848
+ diffSummary: diffSummary(changedFiles),
849
+ notes: [
850
+ "This attempt failed without changing any file, so its git worktree was " +
851
+ "unregistered and removed rather than left in your repository.",
852
+ ],
853
+ });
854
+ }
855
+ // Fall through: git still owns it, so it is reported like any other
856
+ // retained worktree, with the hint that names how to remove it.
857
+ }
585
858
  return attachWorkspace(result, {
586
859
  policy: "git_worktree",
587
860
  originalWorkingDir,
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../src/workspaces.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-dispatch",
3
- "version": "0.7.8",
3
+ "version": "0.8.0",
4
4
  "description": "Turn locally installed coding harnesses (Claude Code, Codex, Cursor, Antigravity) and local/remote API endpoints into tools any AI can call, with async job handling for long-running agent work.",
5
5
  "keywords": [
6
6
  "mcp",
@@ -45,7 +45,7 @@
45
45
  "scripts": {
46
46
  "clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
47
47
  "build": "npm run clean && tsc -p tsconfig.json",
48
- "check": "npm run typecheck && npm test",
48
+ "check": "npm run typecheck && npm test && node scripts/check-claims.mjs",
49
49
  "dev": "tsx src/bin.ts",
50
50
  "smoke": "node scripts/smoke.mjs",
51
51
  "smoke:agents": "node scripts/smoke-agents.mjs",
@@ -56,7 +56,8 @@
56
56
  "typecheck": "tsc --noEmit",
57
57
  "prepublishOnly": "npm run build",
58
58
  "prepack": "npm run build",
59
- "test:unit": "vitest run"
59
+ "test:unit": "vitest run",
60
+ "check:claims": "npm run build && node scripts/check-claims.mjs"
60
61
  },
61
62
  "dependencies": {
62
63
  "@modelcontextprotocol/sdk": "^1.29.0",