@cleocode/core 2026.10.12 → 2026.10.13-rc.ci.682

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 (255) hide show
  1. package/dist/build-provenance.json +2 -2
  2. package/dist/cloud/nexus-auth.d.ts.map +1 -1
  3. package/dist/cloud/nexus-auth.js +11 -2
  4. package/dist/cloud/nexus-auth.js.map +1 -1
  5. package/dist/cloud/nexus-cloud-status.d.ts.map +1 -1
  6. package/dist/cloud/nexus-cloud-status.js +18 -5
  7. package/dist/cloud/nexus-cloud-status.js.map +1 -1
  8. package/dist/cloud/nexus-credentials.d.ts +3 -2
  9. package/dist/cloud/nexus-credentials.d.ts.map +1 -1
  10. package/dist/cloud/nexus-credentials.js +58 -14
  11. package/dist/cloud/nexus-credentials.js.map +1 -1
  12. package/dist/cloud/nexus-logout.d.ts.map +1 -1
  13. package/dist/cloud/nexus-logout.js +12 -2
  14. package/dist/cloud/nexus-logout.js.map +1 -1
  15. package/dist/cloud/nexus-vault-state.d.ts.map +1 -1
  16. package/dist/cloud/nexus-vault-state.js +6 -26
  17. package/dist/cloud/nexus-vault-state.js.map +1 -1
  18. package/dist/config/registry.d.ts +21 -0
  19. package/dist/config/registry.d.ts.map +1 -1
  20. package/dist/config/registry.js +41 -0
  21. package/dist/config/registry.js.map +1 -1
  22. package/dist/dispatch/mvi-projection.d.ts.map +1 -1
  23. package/dist/dispatch/mvi-projection.js +2 -0
  24. package/dist/dispatch/mvi-projection.js.map +1 -1
  25. package/dist/docs/docs-ops.d.ts +15 -14
  26. package/dist/docs/docs-ops.d.ts.map +1 -1
  27. package/dist/docs/docs-ops.js +32 -96
  28. package/dist/docs/docs-ops.js.map +1 -1
  29. package/dist/docs/docs-read-model.d.ts +19 -10
  30. package/dist/docs/docs-read-model.d.ts.map +1 -1
  31. package/dist/docs/docs-read-model.js +31 -47
  32. package/dist/docs/docs-read-model.js.map +1 -1
  33. package/dist/docs/docs-update.d.ts +51 -1
  34. package/dist/docs/docs-update.d.ts.map +1 -1
  35. package/dist/docs/docs-update.js +235 -13
  36. package/dist/docs/docs-update.js.map +1 -1
  37. package/dist/docs/doctor.d.ts +26 -4
  38. package/dist/docs/doctor.d.ts.map +1 -1
  39. package/dist/docs/doctor.js +260 -102
  40. package/dist/docs/doctor.js.map +1 -1
  41. package/dist/docs/fetch-result.d.ts +30 -10
  42. package/dist/docs/fetch-result.d.ts.map +1 -1
  43. package/dist/docs/fetch-result.js +100 -15
  44. package/dist/docs/fetch-result.js.map +1 -1
  45. package/dist/docs/index.d.ts +1 -0
  46. package/dist/docs/index.d.ts.map +1 -1
  47. package/dist/docs/index.js +1 -0
  48. package/dist/docs/index.js.map +1 -1
  49. package/dist/docs/legacy-doc-migration.d.ts +182 -0
  50. package/dist/docs/legacy-doc-migration.d.ts.map +1 -0
  51. package/dist/docs/legacy-doc-migration.js +480 -0
  52. package/dist/docs/legacy-doc-migration.js.map +1 -0
  53. package/dist/docs/publications-store.d.ts +67 -0
  54. package/dist/docs/publications-store.d.ts.map +1 -0
  55. package/dist/docs/publications-store.js +193 -0
  56. package/dist/docs/publications-store.js.map +1 -0
  57. package/dist/docs/publish-pr.d.ts.map +1 -1
  58. package/dist/docs/publish-pr.js +31 -18
  59. package/dist/docs/publish-pr.js.map +1 -1
  60. package/dist/docs/section-leases.d.ts +233 -0
  61. package/dist/docs/section-leases.d.ts.map +1 -0
  62. package/dist/docs/section-leases.js +344 -0
  63. package/dist/docs/section-leases.js.map +1 -0
  64. package/dist/docs/section-merge.d.ts +159 -0
  65. package/dist/docs/section-merge.d.ts.map +1 -0
  66. package/dist/docs/section-merge.js +215 -0
  67. package/dist/docs/section-merge.js.map +1 -0
  68. package/dist/docs/section-write-path.d.ts +191 -0
  69. package/dist/docs/section-write-path.d.ts.map +1 -0
  70. package/dist/docs/section-write-path.js +423 -0
  71. package/dist/docs/section-write-path.js.map +1 -0
  72. package/dist/docs/stats.d.ts +56 -0
  73. package/dist/docs/stats.d.ts.map +1 -0
  74. package/dist/docs/stats.js +119 -0
  75. package/dist/docs/stats.js.map +1 -0
  76. package/dist/gc/cleanup.d.ts +1 -1
  77. package/dist/gc/cleanup.d.ts.map +1 -1
  78. package/dist/gc/cleanup.js +10 -1
  79. package/dist/gc/cleanup.js.map +1 -1
  80. package/dist/gc/janitor.js +1 -1
  81. package/dist/gc/janitor.js.map +1 -1
  82. package/dist/internal.d.ts +1 -1
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.js +1 -1
  85. package/dist/internal.js.map +1 -1
  86. package/dist/memory/pipeline-manifest-sqlite.d.ts +34 -0
  87. package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
  88. package/dist/memory/pipeline-manifest-sqlite.js +114 -0
  89. package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
  90. package/dist/nexus/analyze-orchestrator.d.ts +5 -1
  91. package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
  92. package/dist/nexus/analyze-orchestrator.js +25 -13
  93. package/dist/nexus/analyze-orchestrator.js.map +1 -1
  94. package/dist/nexus/assessment-store.d.ts +8 -4
  95. package/dist/nexus/assessment-store.d.ts.map +1 -1
  96. package/dist/nexus/assessment-store.js +18 -27
  97. package/dist/nexus/assessment-store.js.map +1 -1
  98. package/dist/orchestration/index.d.ts.map +1 -1
  99. package/dist/orchestration/index.js +6 -0
  100. package/dist/orchestration/index.js.map +1 -1
  101. package/dist/orchestration/lean-change.d.ts +104 -5
  102. package/dist/orchestration/lean-change.d.ts.map +1 -1
  103. package/dist/orchestration/lean-change.js +162 -6
  104. package/dist/orchestration/lean-change.js.map +1 -1
  105. package/dist/orchestration/spawn-prompt.d.ts +6 -1
  106. package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
  107. package/dist/orchestration/spawn-prompt.js +3 -1
  108. package/dist/orchestration/spawn-prompt.js.map +1 -1
  109. package/dist/orchestration/spawn.d.ts.map +1 -1
  110. package/dist/orchestration/spawn.js +6 -0
  111. package/dist/orchestration/spawn.js.map +1 -1
  112. package/dist/release/open.d.ts.map +1 -1
  113. package/dist/release/open.js +6 -2
  114. package/dist/release/open.js.map +1 -1
  115. package/dist/release/plan.d.ts.map +1 -1
  116. package/dist/release/plan.js +33 -2
  117. package/dist/release/plan.js.map +1 -1
  118. package/dist/resources/admission-ledger.d.ts +5 -0
  119. package/dist/resources/admission-ledger.d.ts.map +1 -1
  120. package/dist/resources/admission-ledger.js +1 -1
  121. package/dist/resources/admission-ledger.js.map +1 -1
  122. package/dist/resources/run-admission.d.ts.map +1 -1
  123. package/dist/resources/run-admission.js +4 -1
  124. package/dist/resources/run-admission.js.map +1 -1
  125. package/dist/resources/run-governed.d.ts +29 -4
  126. package/dist/resources/run-governed.d.ts.map +1 -1
  127. package/dist/resources/run-governed.js +113 -73
  128. package/dist/resources/run-governed.js.map +1 -1
  129. package/dist/sentient/worktree-dispatch.d.ts +12 -1
  130. package/dist/sentient/worktree-dispatch.d.ts.map +1 -1
  131. package/dist/sentient/worktree-dispatch.js +19 -0
  132. package/dist/sentient/worktree-dispatch.js.map +1 -1
  133. package/dist/spawn/branch-lock.d.ts +11 -1
  134. package/dist/spawn/branch-lock.d.ts.map +1 -1
  135. package/dist/spawn/branch-lock.js +54 -4
  136. package/dist/spawn/branch-lock.js.map +1 -1
  137. package/dist/sticky/archive.d.ts +1 -0
  138. package/dist/sticky/archive.d.ts.map +1 -1
  139. package/dist/sticky/archive.js +13 -0
  140. package/dist/sticky/archive.js.map +1 -1
  141. package/dist/sticky/engine-ops.d.ts.map +1 -1
  142. package/dist/sticky/engine-ops.js +7 -0
  143. package/dist/sticky/engine-ops.js.map +1 -1
  144. package/dist/store/attachment-repair.d.ts +10 -4
  145. package/dist/store/attachment-repair.d.ts.map +1 -1
  146. package/dist/store/attachment-repair.js +52 -25
  147. package/dist/store/attachment-repair.js.map +1 -1
  148. package/dist/store/attachment-store.d.ts.map +1 -1
  149. package/dist/store/attachment-store.js +27 -18
  150. package/dist/store/attachment-store.js.map +1 -1
  151. package/dist/store/blob-keep.d.ts +83 -0
  152. package/dist/store/blob-keep.d.ts.map +1 -1
  153. package/dist/store/blob-keep.js +139 -0
  154. package/dist/store/blob-keep.js.map +1 -1
  155. package/dist/store/blob-ops.d.ts +24 -0
  156. package/dist/store/blob-ops.d.ts.map +1 -1
  157. package/dist/store/blob-ops.js +47 -0
  158. package/dist/store/blob-ops.js.map +1 -1
  159. package/dist/store/conduit-doc-history.d.ts +209 -0
  160. package/dist/store/conduit-doc-history.d.ts.map +1 -1
  161. package/dist/store/conduit-doc-history.js +315 -3
  162. package/dist/store/conduit-doc-history.js.map +1 -1
  163. package/dist/store/decision-adr-links.d.ts +11 -0
  164. package/dist/store/decision-adr-links.d.ts.map +1 -1
  165. package/dist/store/decision-adr-links.js +20 -1
  166. package/dist/store/decision-adr-links.js.map +1 -1
  167. package/dist/store/display-id-alias.d.ts +8 -2
  168. package/dist/store/display-id-alias.d.ts.map +1 -1
  169. package/dist/store/display-id-alias.js +8 -3
  170. package/dist/store/display-id-alias.js.map +1 -1
  171. package/dist/store/lock.d.ts +18 -0
  172. package/dist/store/lock.d.ts.map +1 -1
  173. package/dist/store/lock.js +41 -0
  174. package/dist/store/lock.js.map +1 -1
  175. package/dist/store/row-identity-registry.d.ts.map +1 -1
  176. package/dist/store/row-identity-registry.js +17 -0
  177. package/dist/store/row-identity-registry.js.map +1 -1
  178. package/dist/store/schema/cleo-project/conduit.d.ts +16 -0
  179. package/dist/store/schema/cleo-project/conduit.d.ts.map +1 -1
  180. package/dist/store/schema/cleo-project/conduit.js +8 -0
  181. package/dist/store/schema/cleo-project/conduit.js.map +1 -1
  182. package/dist/store/schema/cleo-project/docs.d.ts +294 -0
  183. package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
  184. package/dist/store/schema/cleo-project/docs.js +82 -0
  185. package/dist/store/schema/cleo-project/docs.js.map +1 -1
  186. package/dist/store/sync/hlc.d.ts +9 -0
  187. package/dist/store/sync/hlc.d.ts.map +1 -1
  188. package/dist/store/sync/hlc.js +9 -0
  189. package/dist/store/sync/hlc.js.map +1 -1
  190. package/dist/store/sync/merge/engine.d.ts.map +1 -1
  191. package/dist/store/sync/merge/engine.js +4 -2
  192. package/dist/store/sync/merge/engine.js.map +1 -1
  193. package/dist/store/sync/merge/rules.d.ts +12 -1
  194. package/dist/store/sync/merge/rules.d.ts.map +1 -1
  195. package/dist/store/sync/merge/rules.js +76 -1
  196. package/dist/store/sync/merge/rules.js.map +1 -1
  197. package/dist/store/sync/replica-registry.d.ts +6 -2
  198. package/dist/store/sync/replica-registry.d.ts.map +1 -1
  199. package/dist/store/sync/replica-registry.js +21 -9
  200. package/dist/store/sync/replica-registry.js.map +1 -1
  201. package/dist/store/sync/timestamp-canon.d.ts.map +1 -1
  202. package/dist/store/sync/timestamp-canon.js +6 -0
  203. package/dist/store/sync/timestamp-canon.js.map +1 -1
  204. package/dist/store/table-classification.d.ts +58 -0
  205. package/dist/store/table-classification.d.ts.map +1 -1
  206. package/dist/store/table-classification.js +72 -0
  207. package/dist/store/table-classification.js.map +1 -1
  208. package/dist/store/twin-collapse.d.ts.map +1 -1
  209. package/dist/store/twin-collapse.js +4 -1
  210. package/dist/store/twin-collapse.js.map +1 -1
  211. package/dist/store/vault-manifest.d.ts +10 -1
  212. package/dist/store/vault-manifest.d.ts.map +1 -1
  213. package/dist/store/vault-manifest.js +59 -1
  214. package/dist/store/vault-manifest.js.map +1 -1
  215. package/dist/tasks/affected-scope.d.ts +11 -0
  216. package/dist/tasks/affected-scope.d.ts.map +1 -1
  217. package/dist/tasks/affected-scope.js +30 -11
  218. package/dist/tasks/affected-scope.js.map +1 -1
  219. package/dist/tasks/cancel-ops.d.ts.map +1 -1
  220. package/dist/tasks/cancel-ops.js +7 -2
  221. package/dist/tasks/cancel-ops.js.map +1 -1
  222. package/dist/tasks/change-set.d.ts +22 -0
  223. package/dist/tasks/change-set.d.ts.map +1 -1
  224. package/dist/tasks/change-set.js +119 -2
  225. package/dist/tasks/change-set.js.map +1 -1
  226. package/dist/tasks/complete.d.ts.map +1 -1
  227. package/dist/tasks/complete.js +7 -0
  228. package/dist/tasks/complete.js.map +1 -1
  229. package/dist/tasks/done-plan.d.ts +5 -0
  230. package/dist/tasks/done-plan.d.ts.map +1 -1
  231. package/dist/tasks/done-plan.js +54 -19
  232. package/dist/tasks/done-plan.js.map +1 -1
  233. package/dist/tasks/engine-wrap.d.ts +4 -0
  234. package/dist/tasks/engine-wrap.d.ts.map +1 -1
  235. package/dist/tasks/engine-wrap.js +20 -4
  236. package/dist/tasks/engine-wrap.js.map +1 -1
  237. package/dist/tasks/evidence-paths.d.ts +11 -0
  238. package/dist/tasks/evidence-paths.d.ts.map +1 -1
  239. package/dist/tasks/evidence-paths.js +12 -0
  240. package/dist/tasks/evidence-paths.js.map +1 -1
  241. package/dist/tools/fs.d.ts +7 -3
  242. package/dist/tools/fs.d.ts.map +1 -1
  243. package/dist/tools/fs.js +23 -8
  244. package/dist/tools/fs.js.map +1 -1
  245. package/dist/worktree/list.d.ts.map +1 -1
  246. package/dist/worktree/list.js +9 -0
  247. package/dist/worktree/list.js.map +1 -1
  248. package/dist/worktree/prune.d.ts.map +1 -1
  249. package/dist/worktree/prune.js +52 -1
  250. package/dist/worktree/prune.js.map +1 -1
  251. package/migrations/drizzle-cleo-project/20261013000000_t13360-migrated-doc-import/migration.sql +61 -0
  252. package/migrations/drizzle-cleo-project/20261014000000_t13362-docs-publications-ledger/migration.sql +45 -0
  253. package/package.json +13 -13
  254. package/templates/CLEO-INJECTION.md +1 -1
  255. package/templates/CLEO-REFERENCE.md +2 -2
@@ -116,6 +116,7 @@ function defaultDeps() {
116
116
  };
117
117
  },
118
118
  jobsDir: runJobsDir(),
119
+ ppid: process.ppid,
119
120
  ledger: () => readLedger(),
120
121
  pid: process.pid,
121
122
  groupOf: processGroupOf,
@@ -191,86 +192,115 @@ export async function runGoverned(opts) {
191
192
  notice(`${describeAdmissionIoError(io)}: running ungoverned`, 'warn');
192
193
  };
193
194
  const deadline = t0 + (opts.timeoutMs ?? 30 * 60_000);
195
+ // T13681: a signal while queued leaves the queue and reports it, never a
196
+ // silent death with no envelope.
197
+ const queueAbort = new AbortController();
198
+ let queuedSignal = null;
199
+ const uninstallQueue = opts.wait
200
+ ? d.onRunnerSignal((signal) => {
201
+ queuedSignal ??= signal;
202
+ queueAbort.abort();
203
+ })
204
+ : () => { };
194
205
  let admission;
195
- if (isLedgerClass(opts.cls)) {
196
- // T13133: one budget and one FIFO queue for every heavy run. Nested in an
197
- // admitted run's process tree (any class), it rides that admission; a
198
- // memory-pressure wait and, after a minute, the holders are warnings, so
199
- // --passthrough shows them.
200
- const out = await d.admit({
201
- label: `run:${opts.cls}`,
202
- footprintBytes: opts.footprintBytes ?? footprintForClass(opts.cls),
203
- ...(opts.footprintReason !== undefined ? { footprintReason: opts.footprintReason } : {}),
204
- ...(opts.scope !== undefined ? { scope: opts.scope } : {}),
205
- // T13237: one full-build machine-wide, whatever its footprint.
206
- ...(opts.cls === 'full-build' ? { exclusive: true } : {}),
207
- command,
208
- cwd: opts.cwd,
209
- }, {
210
- wait: opts.wait === true,
211
- timeoutMs: Math.max(1, deadline - d.now()),
212
- ...(opts.queuePollMs !== undefined ? { pollMs: opts.queuePollMs } : {}),
213
- memoryPressure: memoryGateReporter((line) => notice(line, 'warn'), `${opts.cls} job`, {
206
+ let queued = false;
207
+ try {
208
+ if (isLedgerClass(opts.cls)) {
209
+ // T13133: one budget and one FIFO queue for every heavy run. Nested in an
210
+ // admitted run's process tree (any class), it rides that admission; a
211
+ // memory-pressure wait and, after a minute, the holders are warnings, so
212
+ // --passthrough shows them.
213
+ const out = await d.admit({
214
+ label: `run:${opts.cls}`,
215
+ footprintBytes: opts.footprintBytes ?? footprintForClass(opts.cls),
216
+ ...(opts.footprintReason !== undefined ? { footprintReason: opts.footprintReason } : {}),
217
+ ...(opts.scope !== undefined ? { scope: opts.scope } : {}),
218
+ // T13237: one full-build machine-wide, whatever its footprint.
219
+ ...(opts.cls === 'full-build' ? { exclusive: true } : {}),
220
+ command,
221
+ cwd: opts.cwd,
222
+ }, {
223
+ wait: opts.wait === true,
224
+ timeoutMs: Math.max(1, deadline - d.now()),
225
+ ...(opts.queuePollMs !== undefined ? { pollMs: opts.queuePollMs } : {}),
226
+ memoryPressure: memoryGateReporter((line) => notice(line, 'warn'), `${opts.cls} job`, {
227
+ now: d.now,
228
+ }),
229
+ notice: (line) => notice(line, 'warn'),
214
230
  now: d.now,
215
- }),
216
- notice: (line) => notice(line, 'warn'),
217
- now: d.now,
218
- sleep: (ms) => d.sleep(ms),
219
- });
220
- if (!out.admitted) {
221
- const { refusal } = out;
222
- return deferral(opts, d, opts.wait
223
- ? `timed out after ${Math.round((d.now() - t0) / 1000)}s waiting for the machine budget (position ${refusal.ahead + 1}): ${refusal.reason}`
224
- : refusal.reason, refusal.retryAfterMs, sample, opts.wait ? refusal.ahead + 1 : null, refusal.memoryPressure);
225
- }
226
- const { grant } = out;
227
- if (grant.ungoverned)
228
- sayUngoverned(grant.ungoverned);
229
- if (grant.nested) {
230
- notice('nested in an admitted run: riding its admission, inside its process tree', 'info');
231
- }
232
- else if (grant.waitedMs >= 1_000 && opts.wait) {
233
- notice(`admitted after ${Math.round(grant.waitedMs / 1000)}s in the queue`, 'info');
234
- }
235
- admission = {
236
- release: () => grant.release(),
237
- slot: grant.id === null ? -1 : 0,
238
- token: grant.token,
239
- holdsShare: grant.id !== null,
240
- };
241
- }
242
- else {
243
- // Classes outside the ledger (db-heavy) keep their governor slots. A run
244
- // nested in a job of the SAME class rides its slot (#1777 round 3, M-2).
245
- const parent = enclosing !== null && enclosing.class === opts.cls ? enclosing : null;
246
- if (parent) {
247
- notice(`nested in a running ${parent.class} job (${parent.command}): running on its slot`, 'info');
248
- admission = { release: async () => { }, slot: -1, token: '', holdsShare: false };
249
- }
250
- else {
251
- const tryAcquire = async (s) => {
252
- const r = await admitFailOpen(opts.cls, () => d.tryAcquire(opts.cls, s));
253
- if (r.ungoverned !== null)
254
- sayUngoverned(r.ungoverned);
255
- return r.admission;
256
- };
257
- let result = await tryAcquire(sample);
258
- while (result.deferred && opts.wait && d.now() < deadline) {
259
- await d.sleep(opts.queuePollMs ?? 1000);
260
- sample = await d.sample();
261
- result = await tryAcquire(sample);
231
+ sleep: (ms) => d.sleep(ms, queueAbort.signal),
232
+ signal: queueAbort.signal,
233
+ });
234
+ if (queuedSignal !== null) {
235
+ if (out.admitted)
236
+ await out.grant.release();
237
+ return interrupted(queuedSignal);
238
+ }
239
+ if (!out.admitted) {
240
+ const { refusal } = out;
241
+ return deferral(opts, d, opts.wait
242
+ ? `timed out after ${Math.round((d.now() - t0) / 1000)}s waiting for the machine budget (position ${refusal.ahead + 1}): ${refusal.reason}`
243
+ : refusal.reason, refusal.retryAfterMs, sample, opts.wait ? refusal.ahead + 1 : null, refusal.memoryPressure);
262
244
  }
263
- if (result.deferred) {
264
- return deferral(opts, d, result.reason, result.retryAfterMs, sample, null, result.memoryPressure ?? null);
245
+ const { grant } = out;
246
+ if (grant.ungoverned)
247
+ sayUngoverned(grant.ungoverned);
248
+ if (grant.nested) {
249
+ notice('nested in an admitted run: riding its admission, inside its process tree', 'info');
250
+ }
251
+ else if (grant.waitedMs >= 1_000 && opts.wait) {
252
+ queued = true;
253
+ notice(`admitted after ${Math.round(grant.waitedMs / 1000)}s in the queue`, 'warn');
265
254
  }
266
- const granted = result;
267
255
  admission = {
268
- release: () => granted.release(),
269
- slot: granted.slot,
270
- token: '',
271
- holdsShare: true,
256
+ release: () => grant.release(),
257
+ slot: grant.id === null ? -1 : 0,
258
+ token: grant.token,
259
+ holdsShare: grant.id !== null,
272
260
  };
273
261
  }
262
+ else {
263
+ // Classes outside the ledger (db-heavy) keep their governor slots. A run
264
+ // nested in a job of the SAME class rides its slot (#1777 round 3, M-2).
265
+ const parent = enclosing !== null && enclosing.class === opts.cls ? enclosing : null;
266
+ if (parent) {
267
+ notice(`nested in a running ${parent.class} job (${parent.command}): running on its slot`, 'info');
268
+ admission = { release: async () => { }, slot: -1, token: '', holdsShare: false };
269
+ }
270
+ else {
271
+ const tryAcquire = async (s) => {
272
+ const r = await admitFailOpen(opts.cls, () => d.tryAcquire(opts.cls, s));
273
+ if (r.ungoverned !== null)
274
+ sayUngoverned(r.ungoverned);
275
+ return r.admission;
276
+ };
277
+ let result = await tryAcquire(sample);
278
+ while (result.deferred && opts.wait && d.now() < deadline && queuedSignal === null) {
279
+ await d.sleep(opts.queuePollMs ?? 1000, queueAbort.signal);
280
+ sample = await d.sample();
281
+ result = await tryAcquire(sample);
282
+ }
283
+ if (queuedSignal !== null) {
284
+ if (!result.deferred)
285
+ await result.release();
286
+ return interrupted(queuedSignal);
287
+ }
288
+ if (result.deferred) {
289
+ return deferral(opts, d, result.reason, result.retryAfterMs, sample, null, result.memoryPressure ?? null);
290
+ }
291
+ const granted = result;
292
+ admission = {
293
+ release: () => granted.release(),
294
+ slot: granted.slot,
295
+ token: '',
296
+ holdsShare: true,
297
+ };
298
+ }
299
+ }
300
+ }
301
+ finally {
302
+ // Every admission path, a throw or a nested ride included, drops the queue handler.
303
+ uninstallQueue();
274
304
  }
275
305
  const grant = admission;
276
306
  const waitedMs = d.now() - t0;
@@ -311,6 +341,8 @@ export async function runGoverned(opts) {
311
341
  };
312
342
  writeRunJob(job, d.jobsDir);
313
343
  let exited = false;
344
+ // Declared before the spawn: a spawn failure reports it too (null).
345
+ let runnerSignal = null;
314
346
  let pausedAtMs = null;
315
347
  let capResumedAtMs = null;
316
348
  let pausedTotalMs = 0;
@@ -353,6 +385,7 @@ export async function runGoverned(opts) {
353
385
  // 4, L-A).
354
386
  const forwardTo = leadsGroup ? d.signal : d.signalPid;
355
387
  const uninstall = d.onRunnerSignal((signal) => {
388
+ runnerSignal ??= { signal, atMs: d.now(), ppid: d.ppid };
356
389
  if (childPid === undefined || exited)
357
390
  return;
358
391
  // A terminal's Ctrl-C already reached its whole foreground group, child
@@ -360,6 +393,7 @@ export async function runGoverned(opts) {
360
393
  // runners treat as force-quit (#1777 R8). SIGTERM and SIGHUP still go.
361
394
  if (opts.foreground === true && signal === 'SIGINT')
362
395
  return;
396
+ notice(`runner received ${signal} (its parent pid ${d.ppid}); forwarding it to pid ${childPid}`, 'warn');
363
397
  forwardTo(childPid, 'SIGCONT');
364
398
  forwardTo(childPid, signal);
365
399
  });
@@ -476,7 +510,13 @@ export async function runGoverned(opts) {
476
510
  pauses,
477
511
  slot: grant.slot,
478
512
  ungoverned,
513
+ runnerSignal,
514
+ queued,
479
515
  };
480
516
  }
517
+ function interrupted(signal) {
518
+ notice(`${signal} while waiting in the queue: left the queue, nothing started`, 'warn');
519
+ return { kind: 'interrupted', signal, waitedMs: d.now() - t0, class: opts.cls, command };
520
+ }
481
521
  }
482
522
  //# sourceMappingURL=run-governed.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-governed.js","sourceRoot":"","sources":["../../src/resources/run-governed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-governed.js","sourceRoot":"","sources":["../../src/resources/run-governed.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@
20
20
  * @task T1161
21
21
  * @adr ADR-055
22
22
  */
23
- import type { CreateWorktreeOptions, CreateWorktreeResult, DestroyWorktreeOptions, DestroyWorktreeResult, ListWorktreesOptions, PruneWorktreesResult, WorktreeListEntry } from '@cleocode/contracts';
23
+ import type { CreateWorktreeOptions, CreateWorktreeResult, DestroyWorktreeOptions, DestroyWorktreeResult, ListWorktreesOptions, PruneWorktreesResult, WorktreeDisposalBlockers, WorktreeListEntry } from '@cleocode/contracts';
24
24
  /**
25
25
  * Admit one worktree dependency install as a `scoped-build` run, without
26
26
  * waiting: the release on a grant, `null` when the budget is busy.
@@ -52,6 +52,17 @@ export declare function spawnWorktree(projectRoot: string, options: CreateWorktr
52
52
  * @task T1161
53
53
  */
54
54
  export declare function teardownWorktree(projectRoot: string, options: DestroyWorktreeOptions): Promise<DestroyWorktreeResult>;
55
+ /**
56
+ * Surface a kept worktree as a `W_WORKTREE_KEPT` envelope warning, so
57
+ * `cleo complete` and `cleo cancel` never keep one silently (T13701).
58
+ *
59
+ * @param taskId - The task whose worktree was kept.
60
+ * @param kept - What still needs the worktree's files.
61
+ * @param message - The disposal's explanation (names the path and blockers).
62
+ *
63
+ * @task T13701
64
+ */
65
+ export declare function warnWorktreeKept(taskId: string, kept: WorktreeDisposalBlockers, message: string | undefined): Promise<void>;
55
66
  /**
56
67
  * List worktrees scoped to a project via the native backend.
57
68
  *
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-dispatch.d.ts","sourceRoot":"","sources":["../../src/sentient/worktree-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAoB7B;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAUlF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAsB/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAGhC;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG,iBAAiB,EAAE,CAE5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,oBAAoB,CAEtB;AA6CD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3D"}
1
+ {"version":3,"file":"worktree-dispatch.d.ts","sourceRoot":"","sources":["../../src/sentient/worktree-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAoB7B;;;;;GAKG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAUlF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAsB/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAGhC;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,EAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG,iBAAiB,EAAE,CAE5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,GACzB,oBAAoB,CAEtB;AA6CD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3D"}
@@ -101,6 +101,25 @@ export async function teardownWorktree(projectRoot, options) {
101
101
  const mod = await backend();
102
102
  return mod.destroyWorktree(projectRoot, options);
103
103
  }
104
+ /**
105
+ * Surface a kept worktree as a `W_WORKTREE_KEPT` envelope warning, so
106
+ * `cleo complete` and `cleo cancel` never keep one silently (T13701).
107
+ *
108
+ * @param taskId - The task whose worktree was kept.
109
+ * @param kept - What still needs the worktree's files.
110
+ * @param message - The disposal's explanation (names the path and blockers).
111
+ *
112
+ * @task T13701
113
+ */
114
+ export async function warnWorktreeKept(taskId, kept, message) {
115
+ const { pushWarning } = await import('../output.js');
116
+ pushWarning({
117
+ // @sync-invariant none:local-only a warning about a worktree on this machine's disk; never replicated
118
+ code: 'W_WORKTREE_KEPT',
119
+ message: message ?? `Worktree for ${taskId} kept: something still needs its files.`,
120
+ context: { taskId, dependents: kept.dependents, evidence: kept.evidence },
121
+ });
122
+ }
104
123
  /**
105
124
  * List worktrees scoped to a project via the native backend.
106
125
  *
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-dispatch.js","sourceRoot":"","sources":["../../src/sentient/worktree-dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-dispatch.js","sourceRoot":"","sources":["../../src/sentient/worktree-dispatch.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@
18
18
  * @adr ADR-055
19
19
  * @adr ADR-062
20
20
  */
21
- import type { AgentWorktreeState, FsHardenCapabilities, FsHardenState, WorktreeCleanupResult, WorktreeMergeResult, WorktreeSpawnResult } from '@cleocode/contracts';
21
+ import type { AgentWorktreeState, EvidenceAtom, FsHardenCapabilities, FsHardenState, WorktreeCleanupResult, WorktreeDisposalBlockers, WorktreeMergeResult, WorktreeSpawnResult } from '@cleocode/contracts';
22
22
  import { getGitRoot } from '@cleocode/worktree';
23
23
  export { getGitRoot };
24
24
  /**
@@ -118,6 +118,8 @@ export interface PruneWorktreeResult {
118
118
  wasDirty: boolean;
119
119
  /** Error message if any step failed. */
120
120
  error?: string;
121
+ /** Set (with `status: 'skipped'`) when the worktree was kept because something still needs its files (T13696). */
122
+ kept?: WorktreeDisposalBlockers;
121
123
  }
122
124
  /**
123
125
  * Prune the worktree for a single completed or cancelled task.
@@ -138,11 +140,14 @@ export interface PruneWorktreeResult {
138
140
  * the result — callers should use `completeAgentWorktreeViaMerge` first.
139
141
  * - Always writes a `--force` remove with an audit log entry (`.cleo/audit/worktree-prune.jsonl`)
140
142
  * when the worktree is detected as dirty.
143
+ * - Keeps the worktree (`{ status: 'skipped', kept }`) while another checkout
144
+ * symlinks into it or it holds evidence found nowhere else (T13696).
141
145
  * - Never throws — failures are returned in `{ status: 'error', error }`.
142
146
  *
143
147
  * @param taskId - The CLEO task ID (e.g. "T1462").
144
148
  * @param projectRoot - Absolute path to the project root.
145
149
  * @param opts.auditLogPath - Override path for the audit JSONL (testing).
150
+ * @param opts.evidence - The task's recorded evidence atoms (T13696).
146
151
  * @returns Prune outcome.
147
152
  *
148
153
  * @task T1462
@@ -150,6 +155,7 @@ export interface PruneWorktreeResult {
150
155
  */
151
156
  export declare function pruneWorktree(taskId: string, projectRoot: string, opts?: {
152
157
  auditLogPath?: string;
158
+ evidence?: readonly EvidenceAtom[];
153
159
  }): PruneWorktreeResult;
154
160
  /**
155
161
  * Resolve the project's default integration branch in a project-agnostic way.
@@ -299,6 +305,7 @@ export declare function assessUpstreamIntegration(gitRoot: string, branch: strin
299
305
  * @param opts.targetBranch - Override the resolved default branch.
300
306
  * @param opts.taskTitle - Task title used in the merge commit message subject.
301
307
  * @param opts.skipFetch - Skip every `git fetch` (test fixtures).
308
+ * @param opts.evidence - The task's evidence atoms; the prune keeps a worktree holding the only copy (T13696).
302
309
  * @param opts.fetchTimeoutMs - Timeout for the upstream fetch (default
303
310
  * {@link UPSTREAM_FETCH_TIMEOUT_MS}).
304
311
  * @returns Merge integration result.
@@ -311,6 +318,7 @@ export declare function completeAgentWorktreeViaMerge(taskId: string, projectRoo
311
318
  taskTitle?: string;
312
319
  skipFetch?: boolean;
313
320
  fetchTimeoutMs?: number;
321
+ evidence?: readonly EvidenceAtom[];
314
322
  }): WorktreeMergeResult;
315
323
  /**
316
324
  * Result of a complete post-merge worktree integration.
@@ -343,6 +351,7 @@ export interface WorktreeIntegrationResult extends WorktreeMergeResult {
343
351
  * @param opts.taskTitle - Task title used in the merge commit message subject.
344
352
  * @param opts.skipFetch - Skip the `git fetch origin` step (test fixtures).
345
353
  * @param opts.auditLogPath - Override the audit JSONL path (testing).
354
+ * @param opts.evidence - The task's evidence atoms; the prune keeps a worktree holding the only copy (T13696).
346
355
  * @returns Integration result including audit log path.
347
356
  *
348
357
  * @task T9043
@@ -353,6 +362,7 @@ export declare function completeAgentWorktreeIntegration(taskId: string, project
353
362
  taskTitle?: string;
354
363
  skipFetch?: boolean;
355
364
  auditLogPath?: string;
365
+ evidence?: readonly EvidenceAtom[];
356
366
  }): WorktreeIntegrationResult;
357
367
  /** Result of {@link ensureGitShimDir}. */
358
368
  export interface GitShimInstall {
@@ -1 +1 @@
1
- {"version":3,"file":"branch-lock.d.ts","sourceRoot":"","sources":["../../src/spawn/branch-lock.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAiBH,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAc7B,OAAO,EAEL,UAAU,EAOX,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,UAAU,EAAE,CAAC;AAMtB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGpE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB,CAqE3F;AAeD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAC5B,IAAI,EAAE,MAAM,GAAG,cAAc,EAC7B,QAAQ,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACpE,mBAAmB,CAuDrB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACpB,qBAAqB,CASvB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,uFAAuF;IACvF,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,kDAAkD;IAClD,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAC;IAClB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,mBAAmB,CAkJrB;AAiBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA4C5D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC;AAExF;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C,mCAAmC;IACnC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,uFAAuF;IACvF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAiGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3E,6BAA6B,CA+F/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GACL,mBAAmB,CAiKrB;AAMD;;;;;;;GAOG;AACH,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,6DAA6D;IAC7D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IACJ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CAClB,GACL,yBAAyB,CAgC3B;AAMD,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qCAAqC;IACrC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,WAAW,GAAE,MAA6B,GACzC,cAAc,CA4BhB;AAMD;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,IAAI,oBAAoB,CA+BjE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CAyC/F;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,aAAa,GAAG,IAAI,CA0B/D;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,cAAc,EAAE,mBAAmB,EACnC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAyC,GACtE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExB"}
1
+ {"version":3,"file":"branch-lock.d.ts","sourceRoot":"","sources":["../../src/spawn/branch-lock.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ import { computeProjectHash, findOnPath, pathEnvKey, prependPathEntry, resolveWo
28
28
  // ---------------------------------------------------------------------------
29
29
  // Re-exports from @cleocode/worktree
30
30
  // ---------------------------------------------------------------------------
31
- import { acquireWorktreeTaskLock, getGitRoot, gitSilent, gitSync, integrateWorktree, napiDestroyWorktree, pruneWorktrees, releaseWorktreeTaskLock, } from '@cleocode/worktree';
31
+ import { acquireWorktreeTaskLock, describeDisposalBlockers, getGitRoot, gitSilent, gitSync, guardWorktreeDisposal, integrateWorktree, napiDestroyWorktree, pruneWorktrees, releaseWorktreeTaskLock, } from '@cleocode/worktree';
32
32
  import { resolveSpawnLockHolder } from './worktree-lock-holder.js';
33
33
  // Re-export getGitRoot for barrel consumers
34
34
  export { getGitRoot };
@@ -288,11 +288,14 @@ function leaveDirectoryBeforeRemoval(dir, to) {
288
288
  * the result — callers should use `completeAgentWorktreeViaMerge` first.
289
289
  * - Always writes a `--force` remove with an audit log entry (`.cleo/audit/worktree-prune.jsonl`)
290
290
  * when the worktree is detected as dirty.
291
+ * - Keeps the worktree (`{ status: 'skipped', kept }`) while another checkout
292
+ * symlinks into it or it holds evidence found nowhere else (T13696).
291
293
  * - Never throws — failures are returned in `{ status: 'error', error }`.
292
294
  *
293
295
  * @param taskId - The CLEO task ID (e.g. "T1462").
294
296
  * @param projectRoot - Absolute path to the project root.
295
297
  * @param opts.auditLogPath - Override path for the audit JSONL (testing).
298
+ * @param opts.evidence - The task's recorded evidence atoms (T13696).
296
299
  * @returns Prune outcome.
297
300
  *
298
301
  * @task T1462
@@ -335,6 +338,43 @@ export function pruneWorktree(taskId, projectRoot, opts = {}) {
335
338
  }
336
339
  return { taskId, status: 'skipped', worktreeRemoved: false, branchDeleted, wasDirty: false };
337
340
  }
341
+ // T13696: removal deletes the whole directory, so refuse while another
342
+ // checkout links into it or it holds the only copy of the task's evidence.
343
+ const kept = guardWorktreeDisposal(worktreePath, {
344
+ taskId,
345
+ reason: 'complete',
346
+ gitRoot,
347
+ projectRoot,
348
+ evidence: opts.evidence,
349
+ });
350
+ if (kept !== null) {
351
+ const error = describeDisposalBlockers(worktreePath, kept);
352
+ try {
353
+ const logPath = opts.auditLogPath ?? join(projectRoot, '.cleo', 'audit', 'worktree-prune.jsonl');
354
+ mkdirSync(dirname(logPath), { recursive: true });
355
+ const entry = JSON.stringify({
356
+ timestamp: new Date().toISOString(),
357
+ taskId,
358
+ worktreePath,
359
+ action: 'kept',
360
+ ...kept,
361
+ agent: process.env['CLEO_AGENT_ID'] ?? 'cleo',
362
+ });
363
+ appendFileSync(logPath, entry + '\n', 'utf-8');
364
+ }
365
+ catch {
366
+ /* audit is best-effort */
367
+ }
368
+ return {
369
+ taskId,
370
+ status: 'skipped',
371
+ worktreeRemoved: false,
372
+ branchDeleted: false,
373
+ wasDirty: false,
374
+ error,
375
+ kept,
376
+ };
377
+ }
338
378
  // Detect dirty state: uncommitted changes in the worktree.
339
379
  let wasDirty = false;
340
380
  try {
@@ -773,6 +813,7 @@ export function assessUpstreamIntegration(gitRoot, branch, targetBranch, opts =
773
813
  * @param opts.targetBranch - Override the resolved default branch.
774
814
  * @param opts.taskTitle - Task title used in the merge commit message subject.
775
815
  * @param opts.skipFetch - Skip every `git fetch` (test fixtures).
816
+ * @param opts.evidence - The task's evidence atoms; the prune keeps a worktree holding the only copy (T13696).
776
817
  * @param opts.fetchTimeoutMs - Timeout for the upstream fetch (default
777
818
  * {@link UPSTREAM_FETCH_TIMEOUT_MS}).
778
819
  * @returns Merge integration result.
@@ -852,7 +893,9 @@ export function completeAgentWorktreeViaMerge(taskId, projectRoot, opts = {}) {
852
893
  // worktree unless it holds uncommitted work, which is left for the
853
894
  // operator. The checkout itself is never moved (hint-only).
854
895
  const dirty = existsSync(worktreePath) && isWorktreeDirty(worktreePath);
855
- const pruneResult = dirty ? null : pruneWorktree(taskId, projectRoot);
896
+ const pruneResult = dirty
897
+ ? null
898
+ : pruneWorktree(taskId, projectRoot, { evidence: opts.evidence });
856
899
  let branchDeleted = pruneResult?.branchDeleted ?? false;
857
900
  // pruneWorktree only deletes a branch with zero commits ahead of the
858
901
  // checkout HEAD, so a stale local default branch, a squash merge, or a
@@ -873,13 +916,16 @@ export function completeAgentWorktreeViaMerge(taskId, projectRoot, opts = {}) {
873
916
  commitCount: 0,
874
917
  rebased: false,
875
918
  worktreeRemoved: pruneResult?.worktreeRemoved ?? false,
919
+ ...(pruneResult?.kept ? { worktreeKept: pruneResult.kept } : {}),
876
920
  branchDeleted,
877
921
  nothingToIntegrate: true,
878
922
  ...(upstream.kind === 'landed' ? { landedUpstream: true } : {}),
879
923
  ...(upstream.syncCommand ? { syncCommand: upstream.syncCommand } : {}),
880
924
  hint: dirty
881
925
  ? `${upstream.hint} Worktree ${worktreePath} has uncommitted changes and was preserved.`
882
- : upstream.hint,
926
+ : pruneResult?.kept
927
+ ? `${upstream.hint} ${pruneResult.error}`
928
+ : upstream.hint,
883
929
  };
884
930
  }
885
931
  if (upstream.kind === 'stale-target') {
@@ -923,7 +969,7 @@ export function completeAgentWorktreeViaMerge(taskId, projectRoot, opts = {}) {
923
969
  error: result.error,
924
970
  };
925
971
  }
926
- const pruneResult = pruneWorktree(taskId, projectRoot);
972
+ const pruneResult = pruneWorktree(taskId, projectRoot, { evidence: opts.evidence });
927
973
  return {
928
974
  taskId,
929
975
  targetBranch,
@@ -932,6 +978,7 @@ export function completeAgentWorktreeViaMerge(taskId, projectRoot, opts = {}) {
932
978
  commitCount: result.commitCount,
933
979
  rebased: result.rebased,
934
980
  worktreeRemoved: pruneResult.worktreeRemoved,
981
+ ...(pruneResult.kept ? { worktreeKept: pruneResult.kept } : {}),
935
982
  branchDeleted: pruneResult.branchDeleted,
936
983
  error: pruneResult.error,
937
984
  };
@@ -955,6 +1002,7 @@ export function completeAgentWorktreeViaMerge(taskId, projectRoot, opts = {}) {
955
1002
  * @param opts.taskTitle - Task title used in the merge commit message subject.
956
1003
  * @param opts.skipFetch - Skip the `git fetch origin` step (test fixtures).
957
1004
  * @param opts.auditLogPath - Override the audit JSONL path (testing).
1005
+ * @param opts.evidence - The task's evidence atoms; the prune keeps a worktree holding the only copy (T13696).
958
1006
  * @returns Integration result including audit log path.
959
1007
  *
960
1008
  * @task T9043
@@ -965,6 +1013,7 @@ export function completeAgentWorktreeIntegration(taskId, projectRoot, opts = {})
965
1013
  targetBranch: opts.targetBranch,
966
1014
  taskTitle: opts.taskTitle,
967
1015
  skipFetch: opts.skipFetch,
1016
+ evidence: opts.evidence,
968
1017
  });
969
1018
  // Write audit log entry.
970
1019
  let auditLogEntry = null;
@@ -980,6 +1029,7 @@ export function completeAgentWorktreeIntegration(taskId, projectRoot, opts = {})
980
1029
  mergeCommit: mergeResult.mergeCommit,
981
1030
  merged: mergeResult.merged,
982
1031
  worktreeRemoved: mergeResult.worktreeRemoved,
1032
+ worktreeKept: mergeResult.worktreeKept ?? null,
983
1033
  branchDeleted: mergeResult.branchDeleted,
984
1034
  error: mergeResult.error ?? null,
985
1035
  agent: process.env['CLEO_AGENT_ID'] ?? 'cleo',