dorfl 0.14.2 → 0.15.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 (418) hide show
  1. package/dist/advance-ci-template.d.ts +17 -16
  2. package/dist/advance-ci-template.d.ts.map +1 -1
  3. package/dist/advance-ci-template.js +42 -53
  4. package/dist/advance-ci-template.js.map +1 -1
  5. package/dist/advance-drivers.d.ts +8 -0
  6. package/dist/advance-drivers.d.ts.map +1 -1
  7. package/dist/advance-drivers.js +28 -4
  8. package/dist/advance-drivers.js.map +1 -1
  9. package/dist/advance-isolated.d.ts.map +1 -1
  10. package/dist/advance-isolated.js +3 -2
  11. package/dist/advance-isolated.js.map +1 -1
  12. package/dist/advance-lifecycle-template.d.ts +41 -40
  13. package/dist/advance-lifecycle-template.d.ts.map +1 -1
  14. package/dist/advance-lifecycle-template.js +309 -489
  15. package/dist/advance-lifecycle-template.js.map +1 -1
  16. package/dist/advance-loop-driver.d.ts.map +1 -1
  17. package/dist/advance-loop-driver.js +3 -2
  18. package/dist/advance-loop-driver.js.map +1 -1
  19. package/dist/advance-treeless-publish.d.ts +31 -0
  20. package/dist/advance-treeless-publish.d.ts.map +1 -1
  21. package/dist/advance-treeless-publish.js +40 -0
  22. package/dist/advance-treeless-publish.js.map +1 -1
  23. package/dist/advance.d.ts +63 -3
  24. package/dist/advance.d.ts.map +1 -1
  25. package/dist/advance.js +80 -12
  26. package/dist/advance.js.map +1 -1
  27. package/dist/advancing-lock.d.ts +9 -0
  28. package/dist/advancing-lock.d.ts.map +1 -1
  29. package/dist/advancing-lock.js +21 -1
  30. package/dist/advancing-lock.js.map +1 -1
  31. package/dist/agent-env.d.ts +61 -0
  32. package/dist/agent-env.d.ts.map +1 -0
  33. package/dist/agent-env.js +144 -0
  34. package/dist/agent-env.js.map +1 -0
  35. package/dist/agent-stop.d.ts +35 -0
  36. package/dist/agent-stop.d.ts.map +1 -1
  37. package/dist/agent-stop.js +62 -0
  38. package/dist/agent-stop.js.map +1 -1
  39. package/dist/apply-merge-action.d.ts +76 -34
  40. package/dist/apply-merge-action.d.ts.map +1 -1
  41. package/dist/apply-merge-action.js +339 -129
  42. package/dist/apply-merge-action.js.map +1 -1
  43. package/dist/apply-stuck-action.js +2 -2
  44. package/dist/apply-stuck-action.js.map +1 -1
  45. package/dist/ci-agent-result.d.ts +151 -0
  46. package/dist/ci-agent-result.d.ts.map +1 -0
  47. package/dist/ci-agent-result.js +314 -0
  48. package/dist/ci-agent-result.js.map +1 -0
  49. package/dist/ci-handoff-apply.d.ts +162 -0
  50. package/dist/ci-handoff-apply.d.ts.map +1 -0
  51. package/dist/ci-handoff-apply.js +497 -0
  52. package/dist/ci-handoff-apply.js.map +1 -0
  53. package/dist/ci-handoff-format.d.ts +369 -0
  54. package/dist/ci-handoff-format.d.ts.map +1 -0
  55. package/dist/ci-handoff-format.js +646 -0
  56. package/dist/ci-handoff-format.js.map +1 -0
  57. package/dist/ci-handoff-lfs.d.ts +146 -0
  58. package/dist/ci-handoff-lfs.d.ts.map +1 -0
  59. package/dist/ci-handoff-lfs.js +397 -0
  60. package/dist/ci-handoff-lfs.js.map +1 -0
  61. package/dist/ci-handoff.d.ts +99 -0
  62. package/dist/ci-handoff.d.ts.map +1 -0
  63. package/dist/ci-handoff.js +277 -0
  64. package/dist/ci-handoff.js.map +1 -0
  65. package/dist/ci-lock-outputs.d.ts +93 -0
  66. package/dist/ci-lock-outputs.d.ts.map +1 -0
  67. package/dist/ci-lock-outputs.js +223 -0
  68. package/dist/ci-lock-outputs.js.map +1 -0
  69. package/dist/ci-phase-build.d.ts +178 -0
  70. package/dist/ci-phase-build.d.ts.map +1 -0
  71. package/dist/ci-phase-build.js +989 -0
  72. package/dist/ci-phase-build.js.map +1 -0
  73. package/dist/ci-phase-driver.d.ts +247 -0
  74. package/dist/ci-phase-driver.d.ts.map +1 -0
  75. package/dist/ci-phase-driver.js +370 -0
  76. package/dist/ci-phase-driver.js.map +1 -0
  77. package/dist/ci-phase-intake.d.ts +172 -0
  78. package/dist/ci-phase-intake.d.ts.map +1 -0
  79. package/dist/ci-phase-intake.js +555 -0
  80. package/dist/ci-phase-intake.js.map +1 -0
  81. package/dist/ci-phase-tasking.d.ts +205 -0
  82. package/dist/ci-phase-tasking.d.ts.map +1 -0
  83. package/dist/ci-phase-tasking.js +906 -0
  84. package/dist/ci-phase-tasking.js.map +1 -0
  85. package/dist/ci-phase-treeless.d.ts +224 -0
  86. package/dist/ci-phase-treeless.d.ts.map +1 -0
  87. package/dist/ci-phase-treeless.js +1482 -0
  88. package/dist/ci-phase-treeless.js.map +1 -0
  89. package/dist/ci-read-token.d.ts +47 -0
  90. package/dist/ci-read-token.d.ts.map +1 -0
  91. package/dist/ci-read-token.js +80 -0
  92. package/dist/ci-read-token.js.map +1 -0
  93. package/dist/cli.d.ts.map +1 -1
  94. package/dist/cli.js +447 -22
  95. package/dist/cli.js.map +1 -1
  96. package/dist/close-job-template.d.ts +10 -1
  97. package/dist/close-job-template.d.ts.map +1 -1
  98. package/dist/close-job-template.js +46 -14
  99. package/dist/close-job-template.js.map +1 -1
  100. package/dist/close-job.d.ts +20 -5
  101. package/dist/close-job.d.ts.map +1 -1
  102. package/dist/close-job.js +65 -12
  103. package/dist/close-job.js.map +1 -1
  104. package/dist/complete.d.ts.map +1 -1
  105. package/dist/complete.js +20 -1
  106. package/dist/complete.js.map +1 -1
  107. package/dist/config.d.ts +41 -44
  108. package/dist/config.d.ts.map +1 -1
  109. package/dist/config.js +2 -4
  110. package/dist/config.js.map +1 -1
  111. package/dist/continue-branch.d.ts +63 -15
  112. package/dist/continue-branch.d.ts.map +1 -1
  113. package/dist/continue-branch.js +75 -8
  114. package/dist/continue-branch.js.map +1 -1
  115. package/dist/crashed-run-save.d.ts +73 -0
  116. package/dist/crashed-run-save.d.ts.map +1 -0
  117. package/dist/crashed-run-save.js +86 -0
  118. package/dist/crashed-run-save.js.map +1 -0
  119. package/dist/cwd-section.d.ts.map +1 -1
  120. package/dist/cwd-section.js +10 -2
  121. package/dist/cwd-section.js.map +1 -1
  122. package/dist/decision-engine.d.ts +10 -0
  123. package/dist/decision-engine.d.ts.map +1 -1
  124. package/dist/decision-engine.js.map +1 -1
  125. package/dist/do-config.d.ts +2 -24
  126. package/dist/do-config.d.ts.map +1 -1
  127. package/dist/do-config.js +1 -33
  128. package/dist/do-config.js.map +1 -1
  129. package/dist/do.d.ts +149 -1
  130. package/dist/do.d.ts.map +1 -1
  131. package/dist/do.js +115 -25
  132. package/dist/do.js.map +1 -1
  133. package/dist/dorfl-item-template.d.ts +98 -0
  134. package/dist/dorfl-item-template.d.ts.map +1 -0
  135. package/dist/dorfl-item-template.js +504 -0
  136. package/dist/dorfl-item-template.js.map +1 -0
  137. package/dist/env-config.d.ts.map +1 -1
  138. package/dist/env-config.js +7 -5
  139. package/dist/env-config.js.map +1 -1
  140. package/dist/frontmatter.d.ts +52 -0
  141. package/dist/frontmatter.d.ts.map +1 -1
  142. package/dist/frontmatter.js +136 -2
  143. package/dist/frontmatter.js.map +1 -1
  144. package/dist/gc.d.ts +13 -0
  145. package/dist/gc.d.ts.map +1 -1
  146. package/dist/gc.js +16 -2
  147. package/dist/gc.js.map +1 -1
  148. package/dist/git.d.ts +18 -1
  149. package/dist/git.d.ts.map +1 -1
  150. package/dist/git.js +70 -5
  151. package/dist/git.js.map +1 -1
  152. package/dist/harness.d.ts +44 -5
  153. package/dist/harness.d.ts.map +1 -1
  154. package/dist/harness.js +24 -1
  155. package/dist/harness.js.map +1 -1
  156. package/dist/index.d.ts +11 -4
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +7 -3
  159. package/dist/index.js.map +1 -1
  160. package/dist/install-ci-action-pins.d.ts +123 -0
  161. package/dist/install-ci-action-pins.d.ts.map +1 -0
  162. package/dist/install-ci-action-pins.js +190 -0
  163. package/dist/install-ci-action-pins.js.map +1 -0
  164. package/dist/install-ci-actions-pr-creation.d.ts +70 -0
  165. package/dist/install-ci-actions-pr-creation.d.ts.map +1 -0
  166. package/dist/install-ci-actions-pr-creation.js +106 -0
  167. package/dist/install-ci-actions-pr-creation.js.map +1 -0
  168. package/dist/install-ci-capabilities/dorfl-item.d.ts +12 -0
  169. package/dist/install-ci-capabilities/dorfl-item.d.ts.map +1 -0
  170. package/dist/install-ci-capabilities/dorfl-item.js +26 -0
  171. package/dist/install-ci-capabilities/dorfl-item.js.map +1 -0
  172. package/dist/install-ci-core.d.ts +155 -37
  173. package/dist/install-ci-core.d.ts.map +1 -1
  174. package/dist/install-ci-core.js +304 -200
  175. package/dist/install-ci-core.js.map +1 -1
  176. package/dist/install-ci-github.d.ts +47 -2
  177. package/dist/install-ci-github.d.ts.map +1 -1
  178. package/dist/install-ci-github.js +113 -1
  179. package/dist/install-ci-github.js.map +1 -1
  180. package/dist/install-ci.d.ts +25 -6
  181. package/dist/install-ci.d.ts.map +1 -1
  182. package/dist/install-ci.js +72 -36
  183. package/dist/install-ci.js.map +1 -1
  184. package/dist/intake-marker.d.ts +6 -1
  185. package/dist/intake-marker.d.ts.map +1 -1
  186. package/dist/intake-marker.js.map +1 -1
  187. package/dist/intake-triage.d.ts.map +1 -1
  188. package/dist/intake-triage.js +6 -2
  189. package/dist/intake-triage.js.map +1 -1
  190. package/dist/intake-trigger-template.d.ts +31 -25
  191. package/dist/intake-trigger-template.d.ts.map +1 -1
  192. package/dist/intake-trigger-template.js +107 -292
  193. package/dist/intake-trigger-template.js.map +1 -1
  194. package/dist/intake.d.ts +186 -4
  195. package/dist/intake.d.ts.map +1 -1
  196. package/dist/intake.js +533 -416
  197. package/dist/intake.js.map +1 -1
  198. package/dist/integration-core.d.ts +154 -1
  199. package/dist/integration-core.d.ts.map +1 -1
  200. package/dist/integration-core.js +759 -486
  201. package/dist/integration-core.js.map +1 -1
  202. package/dist/integrator.d.ts +12 -0
  203. package/dist/integrator.d.ts.map +1 -1
  204. package/dist/integrator.js +21 -0
  205. package/dist/integrator.js.map +1 -1
  206. package/dist/isolation.d.ts +12 -2
  207. package/dist/isolation.d.ts.map +1 -1
  208. package/dist/isolation.js +19 -8
  209. package/dist/isolation.js.map +1 -1
  210. package/dist/item-lock.d.ts +93 -11
  211. package/dist/item-lock.d.ts.map +1 -1
  212. package/dist/item-lock.js +233 -65
  213. package/dist/item-lock.js.map +1 -1
  214. package/dist/land-question-residue.d.ts +58 -0
  215. package/dist/land-question-residue.d.ts.map +1 -0
  216. package/dist/land-question-residue.js +95 -0
  217. package/dist/land-question-residue.js.map +1 -0
  218. package/dist/lifecycle-gather.d.ts +16 -0
  219. package/dist/lifecycle-gather.d.ts.map +1 -1
  220. package/dist/lifecycle-gather.js +54 -6
  221. package/dist/lifecycle-gather.js.map +1 -1
  222. package/dist/merge-answer.d.ts +41 -0
  223. package/dist/merge-answer.d.ts.map +1 -0
  224. package/dist/merge-answer.js +60 -0
  225. package/dist/merge-answer.js.map +1 -0
  226. package/dist/merge-question-surfacer.d.ts +105 -30
  227. package/dist/merge-question-surfacer.d.ts.map +1 -1
  228. package/dist/merge-question-surfacer.js +202 -91
  229. package/dist/merge-question-surfacer.js.map +1 -1
  230. package/dist/merge-question-tick.d.ts +64 -0
  231. package/dist/merge-question-tick.d.ts.map +1 -0
  232. package/dist/merge-question-tick.js +96 -0
  233. package/dist/merge-question-tick.js.map +1 -0
  234. package/dist/mint-adr.d.ts.map +1 -1
  235. package/dist/mint-adr.js +20 -2
  236. package/dist/mint-adr.js.map +1 -1
  237. package/dist/needs-attention.d.ts +72 -2
  238. package/dist/needs-attention.d.ts.map +1 -1
  239. package/dist/needs-attention.js +275 -38
  240. package/dist/needs-attention.js.map +1 -1
  241. package/dist/phase-recorder.d.ts +168 -0
  242. package/dist/phase-recorder.d.ts.map +1 -0
  243. package/dist/phase-recorder.js +218 -0
  244. package/dist/phase-recorder.js.map +1 -0
  245. package/dist/phase.d.ts +94 -0
  246. package/dist/phase.d.ts.map +1 -0
  247. package/dist/phase.js +148 -0
  248. package/dist/phase.js.map +1 -0
  249. package/dist/pi-harness.d.ts.map +1 -1
  250. package/dist/pi-harness.js +19 -6
  251. package/dist/pi-harness.js.map +1 -1
  252. package/dist/prepare.d.ts.map +1 -1
  253. package/dist/prepare.js +4 -0
  254. package/dist/prepare.js.map +1 -1
  255. package/dist/prompt.d.ts +4 -0
  256. package/dist/prompt.d.ts.map +1 -1
  257. package/dist/prompt.js +48 -1
  258. package/dist/prompt.js.map +1 -1
  259. package/dist/protocol/CLAIM-PROTOCOL.md +3 -1
  260. package/dist/protocol/WORK-CONTRACT.md +1 -1
  261. package/dist/reap-branches.d.ts +48 -0
  262. package/dist/reap-branches.d.ts.map +1 -1
  263. package/dist/reap-branches.js +64 -0
  264. package/dist/reap-branches.js.map +1 -1
  265. package/dist/ref-write.d.ts +198 -0
  266. package/dist/ref-write.d.ts.map +1 -0
  267. package/dist/ref-write.js +79 -0
  268. package/dist/ref-write.js.map +1 -0
  269. package/dist/repo-config.js +8 -8
  270. package/dist/repo-config.js.map +1 -1
  271. package/dist/repo-mirror.d.ts +36 -0
  272. package/dist/repo-mirror.d.ts.map +1 -1
  273. package/dist/repo-mirror.js +91 -1
  274. package/dist/repo-mirror.js.map +1 -1
  275. package/dist/review-verdict.d.ts +1 -1
  276. package/dist/review-verdict.js +1 -1
  277. package/dist/run.d.ts +7 -1
  278. package/dist/run.d.ts.map +1 -1
  279. package/dist/run.js +28 -4
  280. package/dist/run.js.map +1 -1
  281. package/dist/scan.d.ts +19 -1
  282. package/dist/scan.d.ts.map +1 -1
  283. package/dist/scan.js +21 -8
  284. package/dist/scan.js.map +1 -1
  285. package/dist/sidecar.d.ts +14 -0
  286. package/dist/sidecar.d.ts.map +1 -1
  287. package/dist/sidecar.js +21 -0
  288. package/dist/sidecar.js.map +1 -1
  289. package/dist/single-job-warning.d.ts +63 -0
  290. package/dist/single-job-warning.d.ts.map +1 -0
  291. package/dist/single-job-warning.js +110 -0
  292. package/dist/single-job-warning.js.map +1 -0
  293. package/dist/skills/setup/protocol/CLAIM-PROTOCOL.md +3 -1
  294. package/dist/skills/setup/protocol/WORK-CONTRACT.md +1 -1
  295. package/dist/spec-complete.d.ts +13 -6
  296. package/dist/spec-complete.d.ts.map +1 -1
  297. package/dist/spec-complete.js +23 -11
  298. package/dist/spec-complete.js.map +1 -1
  299. package/dist/start.d.ts.map +1 -1
  300. package/dist/start.js +47 -14
  301. package/dist/start.js.map +1 -1
  302. package/dist/status.d.ts +12 -0
  303. package/dist/status.d.ts.map +1 -1
  304. package/dist/status.js +11 -3
  305. package/dist/status.js.map +1 -1
  306. package/dist/tasking.d.ts +246 -1
  307. package/dist/tasking.d.ts.map +1 -1
  308. package/dist/tasking.js +452 -358
  309. package/dist/tasking.js.map +1 -1
  310. package/dist/triage-persist.d.ts.map +1 -1
  311. package/dist/triage-persist.js +21 -2
  312. package/dist/triage-persist.js.map +1 -1
  313. package/dist/verify-workflow-template.d.ts.map +1 -1
  314. package/dist/verify-workflow-template.js +8 -4
  315. package/dist/verify-workflow-template.js.map +1 -1
  316. package/dist/verify.d.ts.map +1 -1
  317. package/dist/verify.js +4 -0
  318. package/dist/verify.js.map +1 -1
  319. package/dist/watch-session.d.ts +42 -13
  320. package/dist/watch-session.d.ts.map +1 -1
  321. package/dist/watch-session.js +52 -23
  322. package/dist/watch-session.js.map +1 -1
  323. package/dist/work-layout.d.ts +10 -4
  324. package/dist/work-layout.d.ts.map +1 -1
  325. package/dist/work-layout.js +11 -3
  326. package/dist/work-layout.js.map +1 -1
  327. package/dist/workspace.d.ts +65 -4
  328. package/dist/workspace.d.ts.map +1 -1
  329. package/dist/workspace.js +159 -11
  330. package/dist/workspace.js.map +1 -1
  331. package/package.json +1 -1
  332. package/src/advance-ci-template.ts +80 -81
  333. package/src/advance-drivers.ts +45 -6
  334. package/src/advance-isolated.ts +3 -5
  335. package/src/advance-lifecycle-template.ts +375 -538
  336. package/src/advance-loop-driver.ts +3 -5
  337. package/src/advance-treeless-publish.ts +61 -0
  338. package/src/advance.ts +145 -15
  339. package/src/advancing-lock.ts +36 -1
  340. package/src/agent-env.ts +174 -0
  341. package/src/agent-stop.ts +81 -0
  342. package/src/apply-merge-action.ts +401 -154
  343. package/src/apply-stuck-action.ts +2 -2
  344. package/src/ci-agent-result.ts +421 -0
  345. package/src/ci-handoff-apply.ts +737 -0
  346. package/src/ci-handoff-format.ts +926 -0
  347. package/src/ci-handoff-lfs.ts +519 -0
  348. package/src/ci-handoff.ts +392 -0
  349. package/src/ci-lock-outputs.ts +273 -0
  350. package/src/ci-phase-build.ts +1328 -0
  351. package/src/ci-phase-driver.ts +548 -0
  352. package/src/ci-phase-intake.ts +861 -0
  353. package/src/ci-phase-tasking.ts +1255 -0
  354. package/src/ci-phase-treeless.ts +2028 -0
  355. package/src/ci-read-token.ts +90 -0
  356. package/src/cli.ts +591 -29
  357. package/src/close-job-template.ts +52 -15
  358. package/src/close-job.ts +77 -12
  359. package/src/complete.ts +19 -1
  360. package/src/config.ts +43 -48
  361. package/src/continue-branch.ts +121 -16
  362. package/src/crashed-run-save.ts +162 -0
  363. package/src/cwd-section.ts +10 -0
  364. package/src/decision-engine.ts +10 -0
  365. package/src/do-config.ts +2 -57
  366. package/src/do.ts +170 -28
  367. package/src/dorfl-item-template.ts +556 -0
  368. package/src/env-config.ts +7 -5
  369. package/src/frontmatter.ts +155 -2
  370. package/src/gc.ts +27 -2
  371. package/src/git.ts +83 -5
  372. package/src/harness.ts +58 -6
  373. package/src/index.ts +50 -1
  374. package/src/install-ci-action-pins.ts +209 -0
  375. package/src/install-ci-actions-pr-creation.ts +186 -0
  376. package/src/install-ci-capabilities/dorfl-item.ts +33 -0
  377. package/src/install-ci-core.ts +388 -233
  378. package/src/install-ci-github.ts +149 -1
  379. package/src/install-ci.ts +83 -37
  380. package/src/intake-marker.ts +6 -1
  381. package/src/intake-triage.ts +7 -3
  382. package/src/intake-trigger-template.ts +126 -327
  383. package/src/intake.ts +725 -544
  384. package/src/integration-core.ts +975 -523
  385. package/src/integrator.ts +28 -0
  386. package/src/isolation.ts +29 -10
  387. package/src/item-lock.ts +308 -92
  388. package/src/land-question-residue.ts +122 -0
  389. package/src/lifecycle-gather.ts +82 -10
  390. package/src/merge-answer.ts +82 -0
  391. package/src/merge-question-surfacer.ts +320 -112
  392. package/src/merge-question-tick.ts +182 -0
  393. package/src/mint-adr.ts +28 -2
  394. package/src/needs-attention.ts +350 -42
  395. package/src/phase-recorder.ts +350 -0
  396. package/src/phase.ts +177 -0
  397. package/src/pi-harness.ts +25 -5
  398. package/src/prepare.ts +4 -0
  399. package/src/prompt.ts +68 -1
  400. package/src/reap-branches.ts +107 -0
  401. package/src/ref-write.ts +324 -0
  402. package/src/repo-config.ts +8 -8
  403. package/src/repo-mirror.ts +107 -1
  404. package/src/review-verdict.ts +1 -1
  405. package/src/run.ts +47 -6
  406. package/src/scan.ts +37 -7
  407. package/src/sidecar.ts +36 -0
  408. package/src/single-job-warning.ts +135 -0
  409. package/src/spec-complete.ts +36 -14
  410. package/src/start.ts +55 -16
  411. package/src/status.ts +29 -3
  412. package/src/tasking.ts +593 -378
  413. package/src/triage-persist.ts +24 -2
  414. package/src/verify-workflow-template.ts +8 -4
  415. package/src/verify.ts +4 -0
  416. package/src/watch-session.ts +86 -28
  417. package/src/work-layout.ts +11 -3
  418. package/src/workspace.ts +210 -14
package/dist/scan.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { resolveEligibility } from './eligibility.js';
2
2
  import { ledgerRead, } from './ledger-read.js';
3
3
  import { listMirrors } from './registry.js';
4
- import { fetchMirrorMainOrWarn, resolveRepoConfigFromMirror, } from './repo-mirror.js';
4
+ import { createMirrorRefresher, mirrorInReconcileScope, resolveRepoConfigFromMirror, } from './repo-mirror.js';
5
5
  import { resolveRepoConfig } from './repo-config.js';
6
6
  import { taskableSpecs } from './select-priority.js';
7
7
  import { lintLocalLedger, lintRefLedger, } from './ledger-lint.js';
@@ -202,15 +202,17 @@ export async function scan(config, options = {}) {
202
202
  });
203
203
  const repos = [];
204
204
  const counts = { totalItems: 0, totalEligible: 0 };
205
+ // Dead LOCAL arbiters are summarised on one line after the loop (see
206
+ // `createMirrorRefresher`), not warned once per mirror.
207
+ const refresher = createMirrorRefresher({
208
+ warn: options.warn,
209
+ env: options.env,
210
+ });
205
211
  for (const mirror of mirrors) {
206
212
  // Fetch-first (ADR §5/§6): refresh this mirror's `main` so the read below
207
213
  // sees the remote truth. Never fatal — a failed fetch WARNS and falls back to
208
214
  // the mirror's last-known `main` (the read strategy is unchanged).
209
- fetchMirrorMainOrWarn({
210
- mirrorPath: mirror.path,
211
- warn: options.warn,
212
- env: options.env,
213
- });
215
+ refresher.refresh(mirror.path);
214
216
  // Read the full `work/` lifecycle from the mirror's bare `main` ref through
215
217
  // the read seam (git ls-tree/show; NOT a working-tree read).
216
218
  const state = await ledgerRead.resolveMirrorState({
@@ -252,7 +254,8 @@ export async function scan(config, options = {}) {
252
254
  const MIRROR_MAIN = { mainRef: 'main' };
253
255
  let staleLockEntries;
254
256
  let lockHeld;
255
- if (options.reconcileLocks === true) {
257
+ if (options.reconcileLocks === true &&
258
+ mirrorInReconcileScope(mirror.path, options.reconcileArbiterKey, options.env)) {
256
259
  const swept = await reconcileTerminalItemLocks(mirror.path, 'origin', options.env, MIRROR_MAIN);
257
260
  if (swept.released.length > 0) {
258
261
  options.warn?.(`${mirror.path}: released ${swept.released.length} stale per-item ` +
@@ -355,6 +358,7 @@ export async function scan(config, options = {}) {
355
358
  staleLocks: staleLockEntries,
356
359
  });
357
360
  }
361
+ refresher.flush();
358
362
  return {
359
363
  repos,
360
364
  totalItems: counts.totalItems,
@@ -406,7 +410,15 @@ override,
406
410
  * task subtraction. Supplied by the in-place caller (offline scan has no arbiter
407
411
  * handle); DEFAULTS empty.
408
412
  */
409
- heldSpecSlugs = new Set()) {
413
+ heldSpecSlugs = new Set(),
414
+ /**
415
+ * The held TASK slugs whose lock a finished propose build keeps (the
416
+ * `propose-pr` marker): passed to {@link gatherLifecycleInPlace}, which lets
417
+ * such a slug through the lifecycle subtraction when its merge question is
418
+ * answered `merge` (task `wire-merge-questions-into-the-advance-tick`,
419
+ * decision 6). The build pool is unaffected. DEFAULTS empty.
420
+ */
421
+ proposeKeptSlugs = new Set()) {
410
422
  const repos = [];
411
423
  const counts = { totalItems: 0, totalEligible: 0 };
412
424
  for (const path of repoPaths) {
@@ -441,6 +453,7 @@ heldSpecSlugs = new Set()) {
441
453
  // symmetric to the `scoreItems` subtraction above, so a held task never
442
454
  // leaks into a surface/apply leg either.
443
455
  heldSlugs,
456
+ proposeKeptSlugs,
444
457
  }));
445
458
  // The one-slug-one-folder LINT over THIS working tree's `work/` ledger.
446
459
  const ledgerDuplicates = lintLocalLedger(path);
package/dist/scan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAyB,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EACN,UAAU,GAIV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EACN,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACN,eAAe,EACf,aAAa,GAEb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACN,aAAa,EAEb,yBAAyB,EACzB,0BAA0B,GAE1B,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAWlC;IACA,OAAO;QACN,MAAM,EAAE,MAAM,CAAC,iBAAiB,KAAK,KAAK;QAC1C,OAAO,EAAE,MAAM,CAAC,eAAe,KAAK,IAAI;QACxC,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,IAAI;KAC9C,CAAC;AACH,CAAC;AA4JD;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC7C,OAAO,UAAU,CAAC,iBAAiB,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC9C,OAAO,UAAU,CAAC,iBAAiB,CAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,KAAK,CAAC;AACvD,CAAC;AAED;;;;;;;GAOG;AACH;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACzB,QAAgB,EAChB,IAAoB,EACpB,QAAiB;AACjB;;;;;;;;;;GAUG;AACH,gBAA6B,IAAI,GAAG,EAAE;IAEtC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACvB,aAAa,CAAC;QACb,UAAU,EAAE,IAAI,CAAC,KAAK;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACZ,QAAQ;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,WAAW,EAAE,CAAC,CAAC,WAAW;SAC1B,CAAC,CAAC;QACJ,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,QAAQ;KACR,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACrB,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,EAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC;KAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAIlC;IACA,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACpE,kFAAkF;IAClF,MAAM,SAAS,GAAG,CACjB,KAA0C,EAC1C,gBAAyB,EACF,EAAE,CACzB,KAAK;SACH,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,SAAS,KAAK,MAAM;QACtB,CAAC,CAAC,SAAS,KAAK,MAAM;QACtB,CAAC,gBAAgB,IAAI,CAAC,CAAC,SAAS,KAAK,aAAa,CAAC,CACpD;SACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACZ,SAAS,EAAE,CAAC,CAAC,SAA4C;QACzD,IAAI,EAAE,CAAC,CAAC,IAAI;KACZ,CAAC,CAAC,CAAC;IACN,OAAO;QACN,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC;QACjD,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC;QACxC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;KACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CACzB,KAAoD,EACpD,SAAkB,EAClB,MAAmD,EACnD,YAAyB,IAAI,GAAG,EAAE;IAElC,8EAA8E;IAC9E,2EAA2E;IAC3E,+EAA+E;IAC/E,4BAA4B;IAC5B,EAAE;IACF,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,gFAAgF;IAChF,8CAA8C;IAC9C,EAAE;IACF,8EAA8E;IAC9E,+DAA+D;IAC/D,gFAAgF;IAChF,+EAA+E;IAC/E,gFAAgF;IAChF,+EAA+E;IAC/E,2DAA2D;IAC3D,OAAO,KAAK,CAAC,KAAK;SAChB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACtC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS;SACT,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,EAAE,CAAC;QACxB,CAAC;QACD,OAAO,EAAC,GAAG,IAAI,EAAE,WAAW,EAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACzB,MAAc,EACd,UA6BI,EAAE;IAEN,MAAM,OAAO,GAAG,WAAW,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG;KAChB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,EAAC,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAC,CAAC;IAEjD,qEAAqE;IACrE,wDAAwD;IACxD,MAAM,SAAS,GAAG,qBAAqB,CAAC;QACvC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;KAChB,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC9B,0EAA0E;QAC1E,8EAA8E;QAC9E,mEAAmE;QACnE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,4EAA4E;QAC5E,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,kBAAkB,CAAC;YACjD,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,iBAAiB,CAAC;YACnC,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC1B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACpB,4EAA4E;QAC5E,8EAA8E;QAC9E,4EAA4E;QAC5E,gFAAgF;QAChF,yBAAyB;QACzB,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,6EAA6E;QAC7E,wEAAwE;QACxE,EAAE;QACF,8EAA8E;QAC9E,6EAA6E;QAC7E,sEAAsE;QACtE,0EAA0E;QAC1E,yEAAyE;QACzE,sEAAsE;QACtE,aAAa;QACb,EAAE;QACF,2EAA2E;QAC3E,iEAAiE;QACjE,EAAE;QACF,0EAA0E;QAC1E,mEAAmE;QACnE,6EAA6E;QAC7E,6EAA6E;QAC7E,4CAA4C;QAC5C,MAAM,WAAW,GAAG,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC;QACtC,IAAI,gBAA0B,CAAC;QAC/B,IAAI,QAAqB,CAAC;QAC1B,IACC,OAAO,CAAC,cAAc,KAAK,IAAI;YAC/B,sBAAsB,CACrB,MAAM,CAAC,IAAI,EACX,OAAO,CAAC,mBAAmB,EAC3B,OAAO,CAAC,GAAG,CACX,EACA,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,0BAA0B,CAC7C,MAAM,CAAC,IAAI,EACX,QAAQ,EACR,OAAO,CAAC,GAAG,EACX,WAAW,CACX,CAAC;YACF,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,IAAI,EAAE,CACb,GAAG,MAAM,CAAC,IAAI,cAAc,KAAK,CAAC,QAAQ,CAAC,MAAM,kBAAkB;oBAClE,6DAA6D;oBAC7D,mCAAmC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;YACH,CAAC;YACD,+DAA+D;YAC/D,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC9B,OAAO,CAAC,IAAI,EAAE,CACb,GAAG,MAAM,CAAC,IAAI,wBAAwB,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,OAAO,EAAE,CAC9D,CAAC;YACH,CAAC;YACD,gBAAgB,GAAG,EAAE,CAAC;YACtB,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,MAAM,UAAU,GAAG,MAAM,yBAAyB,CACjD,MAAM,CAAC,IAAI,EACX,QAAQ,EACR,OAAO,CAAC,GAAG,EACX,WAAW,CACX,CAAC;YACF,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3D,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;QAChC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1E,qDAAqD;QACrD,0EAA0E;QAC1E,6EAA6E;QAC7E,8EAA8E;QAC9E,0EAA0E;QAC1E,wEAAwE;QACxE,6EAA6E;QAC7E,0DAA0D;QAC1D,6EAA6E;QAC7E,+EAA+E;QAC/E,yCAAyC;QACzC,iEAAiE;QACjE,+EAA+E;QAC/E,+DAA+D;QAC/D,4EAA4E;QAC5E,0EAA0E;QAC1E,kCAAkC;QAClC,IAAI,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC;YACJ,YAAY,GAAG,2BAA2B,CAAC;gBAC1C,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC1B,CAAC,CAAC,QAAQ,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,EAAE,CACb,gDAAgD,MAAM,CAAC,IAAI,SAAS;gBACnE,6CAA6C,MAAM,EAAE,CACtD,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC;YACvD,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC9D,gFAAgF;QAChF,gFAAgF;QAChF,uEAAuE;QACvE,iFAAiF;QACjF,mEAAmE;QACnE,IAAI,mBAAmB,GAAG;YACzB,iBAAiB,EAAE,MAAM,CAAC,iBAA2B;YACrD,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,cAAc,EAAE,MAAM,CAAC,cAAc;SACrC,CAAC;QACF,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,2BAA2B,CAAC;gBAC5C,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC1B,CAAC,CAAC;YACH,mBAAmB,GAAG;gBACrB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;gBAC7C,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,cAAc,EAAE,QAAQ,CAAC,cAAc;aACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACR,uEAAuE;YACvE,4EAA4E;YAC5E,kCAAkC;QACnC,CAAC;QACD,MAAM,SAAS,GAAG,kBAAkB,CACnC,MAAM,qBAAqB,CAAC;YAC3B,UAAU,EAAE,MAAM,CAAC,IAAI;YACvB,KAAK,EAAE,kBAAkB,CAAC,mBAAmB,CAAC;YAC9C,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CACF,CAAC;QACF,8EAA8E;QAC9E,4EAA4E;QAC5E,gFAAgF;QAChF,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;YACtD,KAAK;YACL,SAAS;YACT,gBAAgB;YAChB,QAAQ;YACR,UAAU,EAAE,gBAAgB;SAC5B,CAAC,CAAC;IACJ,CAAC;IACD,SAAS,CAAC,KAAK,EAAE,CAAC;IAElB,OAAO;QACN,KAAK;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;KACnC,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAC5B,SAAmB,EACnB,MAAc;AACd;;;;;;;;;;;;;;;;;GAiBG;AACH,YAAyB,IAAI,GAAG,EAAE;AAClC;;;;GAIG;AACH,QAA4B;AAC5B;;;;;;;;GAQG;AACH,gBAA6B,IAAI,GAAG,EAAE;AACtC;;;;;;GAMG;AACH,mBAAgC,IAAI,GAAG,EAAE;IAEzC,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,EAAC,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAC,CAAC;IAEjD,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,UAAU,CAAC,iBAAiB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,iBAAiB,CAAC;YAClC,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,MAAM;YACd,QAAQ;SACR,CAAC,CAAC,MAAM,CAAC;QACV,oEAAoE;QACpE,mEAAmE;QACnE,2EAA2E;QAC3E,yEAAyE;QACzE,6EAA6E;QAC7E,gFAAgF;QAChF,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC3E,gFAAgF;QAChF,iFAAiF;QACjF,kEAAkE;QAClE,gFAAgF;QAChF,kEAAkE;QAClE,MAAM,SAAS,GAAG,kBAAkB,CACnC,sBAAsB,CAAC;YACtB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,kBAAkB,CAAC;gBACzB,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;gBAC7C,eAAe,EAAE,QAAQ,CAAC,eAAe;gBACzC,cAAc,EAAE,QAAQ,CAAC,cAAc;aACvC,CAAC;YACF,oDAAoD;YACpD,oEAAoE;YACpE,wEAAwE;YACxE,yCAAyC;YACzC,SAAS;YACT,gBAAgB;SAChB,CAAC,CACF,CAAC;QACF,wEAAwE;QACxE,MAAM,gBAAgB,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC;YACV,IAAI;YACJ,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;YAC/D,KAAK;YACL,SAAS;YACT,gBAAgB;SAChB,CAAC,CAAC;IACJ,CAAC;IAED,OAAO;QACN,KAAK;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,aAAa,EAAE,MAAM,CAAC,aAAa;KACnC,CAAC;AACH,CAAC"}
package/dist/sidecar.d.ts CHANGED
@@ -129,6 +129,18 @@ export interface SidecarEntry {
129
129
  * kind-based SUBFOLDERS.
130
130
  */
131
131
  kind?: SidecarKind;
132
+ /**
133
+ * The arbiter `main` commit this question was ASKED AGAINST (a full hex
134
+ * sha), set on a `kind: merge` entry by the merge-question surfacer and by
135
+ * the `strictMergeApproval` re-surface path (task
136
+ * `strict-merge-approval-restale-check-runs-before-the-continue-rebase`).
137
+ * With `strictMergeApproval` on, an answered merge re-surfaces when `main`'s
138
+ * code moved since this commit. Absent on every other entry and on a merge
139
+ * entry written before the field existed (which then never re-stales).
140
+ * Carried in the per-entry HTML comment as `askedAtMain=<sha>`; a malformed
141
+ * value reads as absent.
142
+ */
143
+ askedAtMain?: string;
132
144
  }
133
145
  /** The parsed sidecar: identity frontmatter + ordered entries. */
134
146
  export interface SidecarModel {
@@ -262,6 +274,8 @@ export interface NewQuestion {
262
274
  * agentic `decide()` path. INTERIM — removable once kind-subfolders land.
263
275
  */
264
276
  kind?: SidecarKind;
277
+ /** The arbiter `main` sha the question is asked against (see {@link SidecarEntry.askedAtMain}). */
278
+ askedAtMain?: string;
265
279
  }
266
280
  /**
267
281
  * Append `newQuestions` to the model, minting `qN+1…` ids off the highest
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar.d.ts","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"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"}
package/dist/sidecar.js CHANGED
@@ -8,6 +8,8 @@ const SIDECAR_KINDS = new Set([
8
8
  'triage',
9
9
  'spec',
10
10
  ]);
11
+ /** A full git object name: 40 hex (SHA-1) or 64 hex (SHA-256). */
12
+ const FULL_SHA = /^(?:[0-9a-f]{40}|[0-9a-f]{64})$/;
11
13
  /** Raised for a structurally-invalid sidecar the parser cannot trust. */
12
14
  export class SidecarParseError extends Error {
13
15
  constructor(message) {
@@ -276,6 +278,12 @@ function parseEntryComment(line) {
276
278
  out.kind = value;
277
279
  }
278
280
  }
281
+ else if (key === 'askedAtMain') {
282
+ // Silent-on-malformed, as for `kind`: only a full sha is kept.
283
+ if (FULL_SHA.test(value)) {
284
+ out.askedAtMain = value;
285
+ }
286
+ }
279
287
  }
280
288
  return out;
281
289
  }
@@ -288,6 +296,7 @@ function parseEntrySection(lines) {
288
296
  let defaultVal;
289
297
  let answeredOverride;
290
298
  let kind;
299
+ let askedAtMain;
291
300
  let answerStart = -1;
292
301
  for (let i = 0; i < lines.length; i++) {
293
302
  const line = lines[i];
@@ -306,6 +315,9 @@ function parseEntrySection(lines) {
306
315
  if (entryFields.kind !== undefined) {
307
316
  kind = entryFields.kind;
308
317
  }
318
+ if (entryFields.askedAtMain !== undefined) {
319
+ askedAtMain = entryFields.askedAtMain;
320
+ }
309
321
  inBlockquote = false;
310
322
  continue;
311
323
  }
@@ -369,6 +381,9 @@ function parseEntrySection(lines) {
369
381
  if (kind !== undefined) {
370
382
  entry.kind = kind;
371
383
  }
384
+ if (askedAtMain !== undefined) {
385
+ entry.askedAtMain = askedAtMain;
386
+ }
372
387
  return entry;
373
388
  }
374
389
  /**
@@ -505,6 +520,9 @@ export function serialiseSidecar(model, options = {}) {
505
520
  if (entry.kind !== undefined) {
506
521
  fields.push(`kind=${entry.kind}`);
507
522
  }
523
+ if (entry.askedAtMain !== undefined && FULL_SHA.test(entry.askedAtMain)) {
524
+ fields.push(`askedAtMain=${entry.askedAtMain}`);
525
+ }
508
526
  out.push(`<!-- ${entry.id} fields: ${fields.join(' ')} -->`);
509
527
  out.push('');
510
528
  out.push(ANSWER_MARKER);
@@ -539,6 +557,9 @@ export function appendQuestions(model, newQuestions) {
539
557
  if (q.kind !== undefined) {
540
558
  entry.kind = q.kind;
541
559
  }
560
+ if (q.askedAtMain !== undefined) {
561
+ entry.askedAtMain = q.askedAtMain;
562
+ }
542
563
  entries.push(entry);
543
564
  }
544
565
  return { ...model, entries };
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../src/sidecar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The **old single-job workflow warning** (decision 9 of ADR
3
+ * `ci-agent-job-holds-no-write-token`, task `ci-split-warn-single-job-workflows`).
4
+ *
5
+ * A consumer that upgrades dorfl but keeps a workflow generated before the CI
6
+ * split runs an agent verb in ONE job whose checkout persisted the write token
7
+ * in `.git/config`. The agent can read that credential. dorfl cannot fix the
8
+ * workflow from inside it, so it warns loudly: in GitHub Actions, when an
9
+ * agent-spawning verb ({@link AGENT_SPAWNING_VERBS}) runs WITHOUT `--phase` in a
10
+ * checkout whose local git config holds a credential. Behaviour is otherwise
11
+ * unchanged; the next minor version turns this warning into a refusal (an
12
+ * intent recorded in the warning text and the changeset, not in code).
13
+ *
14
+ * The credential itself is NEVER printed: detection returns only a boolean.
15
+ */
16
+ import { type Phase } from './phase.js';
17
+ /**
18
+ * Agent-spawning verbs this warning deliberately skips. `verify` is in
19
+ * {@link AGENT_SPAWNING_VERBS} because it runs repository code, but it launches
20
+ * no agent, and the generated `verify.yml` persists only a `contents: read`
21
+ * credential. Warning there would flag every private consumer's PR check, and
22
+ * the planned refusal would break it. Task `ci-split-generate-workflows` (the
23
+ * workflow guard) must apply the same exemption.
24
+ */
25
+ export declare const SINGLE_JOB_WARNING_EXEMPT_VERBS: ReadonlySet<string>;
26
+ /**
27
+ * Does this `git config --null --list` output hold a credential: a non-empty
28
+ * `http.*.extraheader`, or any value that is an HTTP(S) URL with userinfo?
29
+ * Returns a boolean only, so no caller can print the secret by accident.
30
+ */
31
+ export declare function gitConfigListHoldsCredential(nullList: string): boolean;
32
+ /**
33
+ * Does the checkout at `cwd` persist a credential in its LOCAL git config
34
+ * (`.git/config` and the files it includes: `actions/checkout` v6+ writes the
35
+ * header to a separate file pulled in by an `includeIf`)? Global, system and
36
+ * environment (`GIT_CONFIG_*`) config are not read: the agent phase hands its
37
+ * read token to dorfl's git through the environment, which is not a persisted
38
+ * credential. Any failure (not a repository, no git) answers `false`: the
39
+ * warning never breaks a run.
40
+ */
41
+ export declare function checkoutPersistsCredential(cwd: string): boolean;
42
+ /** The warning text (never contains the credential). */
43
+ export declare function singleJobWarningText(verb: string): string;
44
+ /** Inputs to {@link singleJobWarning}. */
45
+ export interface SingleJobWarningInput {
46
+ /** The top-level CLI verb that is about to run. */
47
+ verb: string;
48
+ /** Its `--phase`, or `undefined` when none was given. */
49
+ phase: Phase | undefined;
50
+ env: NodeJS.ProcessEnv;
51
+ /** The checkout to inspect. */
52
+ cwd: string;
53
+ /** Injectable credential probe (default {@link checkoutPersistsCredential}). */
54
+ persistsCredential?: (cwd: string) => boolean;
55
+ }
56
+ /**
57
+ * The warning to print for this invocation, or `undefined` when the shape is
58
+ * safe (a `--phase` run, not in GitHub Actions, a verb that spawns no agent or
59
+ * is exempt, or no persisted credential). The git config is read last, only
60
+ * when every cheap condition already says "unsafe".
61
+ */
62
+ export declare function singleJobWarning(input: SingleJobWarningInput): string | undefined;
63
+ //# sourceMappingURL=single-job-warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-job-warning.d.ts","sourceRoot":"","sources":["../src/single-job-warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAAuB,KAAK,KAAK,EAAC,MAAM,YAAY,CAAC;AAE5D;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,CAE9D,CAAC;AAQH;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAgBtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAW/D;AAED,wDAAwD;AACxD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACrC,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,+BAA+B;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC/B,KAAK,EAAE,qBAAqB,GAC1B,MAAM,GAAG,SAAS,CAgBpB"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * The **old single-job workflow warning** (decision 9 of ADR
3
+ * `ci-agent-job-holds-no-write-token`, task `ci-split-warn-single-job-workflows`).
4
+ *
5
+ * A consumer that upgrades dorfl but keeps a workflow generated before the CI
6
+ * split runs an agent verb in ONE job whose checkout persisted the write token
7
+ * in `.git/config`. The agent can read that credential. dorfl cannot fix the
8
+ * workflow from inside it, so it warns loudly: in GitHub Actions, when an
9
+ * agent-spawning verb ({@link AGENT_SPAWNING_VERBS}) runs WITHOUT `--phase` in a
10
+ * checkout whose local git config holds a credential. Behaviour is otherwise
11
+ * unchanged; the next minor version turns this warning into a refusal (an
12
+ * intent recorded in the warning text and the changeset, not in code).
13
+ *
14
+ * The credential itself is NEVER printed: detection returns only a boolean.
15
+ */
16
+ import { inGitHubActions } from './agent-env.js';
17
+ import { run } from './git.js';
18
+ import { AGENT_SPAWNING_VERBS } from './phase.js';
19
+ /**
20
+ * Agent-spawning verbs this warning deliberately skips. `verify` is in
21
+ * {@link AGENT_SPAWNING_VERBS} because it runs repository code, but it launches
22
+ * no agent, and the generated `verify.yml` persists only a `contents: read`
23
+ * credential. Warning there would flag every private consumer's PR check, and
24
+ * the planned refusal would break it. Task `ci-split-generate-workflows` (the
25
+ * workflow guard) must apply the same exemption.
26
+ */
27
+ export const SINGLE_JOB_WARNING_EXEMPT_VERBS = new Set([
28
+ 'verify',
29
+ ]);
30
+ /** An HTTP(S) URL carrying userinfo (`https://user:token@host/...`). */
31
+ const URL_WITH_USERINFO = /https?:\/\/[^/@\s]+@/i;
32
+ /** An `http.extraheader` / `http.<url>.extraheader` key. */
33
+ const EXTRAHEADER_KEY = /^http\.(?:.*\.)?extraheader$/i;
34
+ /**
35
+ * Does this `git config --null --list` output hold a credential: a non-empty
36
+ * `http.*.extraheader`, or any value that is an HTTP(S) URL with userinfo?
37
+ * Returns a boolean only, so no caller can print the secret by accident.
38
+ */
39
+ export function gitConfigListHoldsCredential(nullList) {
40
+ for (const entry of nullList.split('\0')) {
41
+ if (entry === '') {
42
+ continue;
43
+ }
44
+ const newline = entry.indexOf('\n');
45
+ const key = newline === -1 ? entry : entry.slice(0, newline);
46
+ const value = newline === -1 ? '' : entry.slice(newline + 1);
47
+ if (EXTRAHEADER_KEY.test(key) && value.trim() !== '') {
48
+ return true;
49
+ }
50
+ if (URL_WITH_USERINFO.test(value)) {
51
+ return true;
52
+ }
53
+ }
54
+ return false;
55
+ }
56
+ /**
57
+ * Does the checkout at `cwd` persist a credential in its LOCAL git config
58
+ * (`.git/config` and the files it includes: `actions/checkout` v6+ writes the
59
+ * header to a separate file pulled in by an `includeIf`)? Global, system and
60
+ * environment (`GIT_CONFIG_*`) config are not read: the agent phase hands its
61
+ * read token to dorfl's git through the environment, which is not a persisted
62
+ * credential. Any failure (not a repository, no git) answers `false`: the
63
+ * warning never breaks a run.
64
+ */
65
+ export function checkoutPersistsCredential(cwd) {
66
+ try {
67
+ const result = run('git', ['config', '--local', '--includes', '--null', '--list'], cwd);
68
+ return result.status === 0 && gitConfigListHoldsCredential(result.stdout);
69
+ }
70
+ catch {
71
+ return false;
72
+ }
73
+ }
74
+ /** The warning text (never contains the credential). */
75
+ export function singleJobWarningText(verb) {
76
+ return [
77
+ '',
78
+ '!! WARNING: unsafe single-job CI workflow',
79
+ `!! 'dorfl ${verb}' is running in GitHub Actions without --phase, in a checkout`,
80
+ '!! whose git config persists a credential. Any agent this run launches can read',
81
+ '!! and use that token. Re-run `dorfl install-ci` to upgrade to the split',
82
+ '!! lock / agent / apply workflow, where the agent job holds no write token.',
83
+ '!! The next minor version of dorfl will REFUSE to run in this shape.',
84
+ '',
85
+ ].join('\n');
86
+ }
87
+ /**
88
+ * The warning to print for this invocation, or `undefined` when the shape is
89
+ * safe (a `--phase` run, not in GitHub Actions, a verb that spawns no agent or
90
+ * is exempt, or no persisted credential). The git config is read last, only
91
+ * when every cheap condition already says "unsafe".
92
+ */
93
+ export function singleJobWarning(input) {
94
+ const { verb, phase, env, cwd } = input;
95
+ if (phase !== undefined) {
96
+ return undefined;
97
+ }
98
+ if (!AGENT_SPAWNING_VERBS.has(verb)) {
99
+ return undefined;
100
+ }
101
+ if (SINGLE_JOB_WARNING_EXEMPT_VERBS.has(verb)) {
102
+ return undefined;
103
+ }
104
+ if (!inGitHubActions(env)) {
105
+ return undefined;
106
+ }
107
+ const probe = input.persistsCredential ?? checkoutPersistsCredential;
108
+ return probe(cwd) ? singleJobWarningText(verb) : undefined;
109
+ }
110
+ //# sourceMappingURL=single-job-warning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"single-job-warning.js","sourceRoot":"","sources":["../src/single-job-warning.ts"],"names":[],"mappings":"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"}
@@ -93,7 +93,7 @@ WORK (only after the lock is held):
93
93
 
94
94
  ## The land invariant — rebase + re-verify + advance
95
95
 
96
- Step 7a's durable `main` move (the LAND) is the mode-agnostic primitive: **fetch current `main` → rebase the work branch onto it → re-run `verify` (and review) on the rebased tree → advance.** A lost CAS or a moved-`main` between gate and push INVALIDATES any prior green and re-arms the gate (re-rebase, re-`verify`, retry — never a `--force`, never an auto-resolved conflict). Merge mode runs it inline at the serialised land; propose mode runs it at the human checkpoint (the propose PR is merged only after the rebased tip re-verifies green). Human review is ADDITIVE (intent/design/security), NEVER a substitute for the re-verify on the rebased tree. The durable _why_ — and the floor/ceiling gradient from bare git to a capable host — lives in ADR `land-primitive-rebase-reverify-advance`.
96
+ Step 7a's durable `main` move (the LAND) is the mode-agnostic primitive: **fetch current `main` → rebase the work branch onto it → re-run `verify` (and review) on the rebased tree → advance.** A lost CAS (`main` moved between the gate and the push) re-rebases the work onto the new `main` and retries the push, never a `--force`, never an auto-resolved conflict; it does NOT re-run the gate, so the tree that lands can be one the gate never saw. The CI apply phase reports every land whose tree differs from the gated tree ("landed without re-gate after N lost races", in the run output and as a `Landed-Without-Regate` trailer on the landed commit; ADR `ci-agent-job-holds-no-write-token` decision 2). Merge mode runs it inline at the serialised land; propose mode runs it at the human checkpoint (the propose PR is merged only after the rebased tip re-verifies green). Human review is ADDITIVE (intent/design/security), NEVER a substitute for the re-verify on the rebased tree. The durable _why_ — and the floor/ceiling gradient from bare git to a capable host — lives in ADR `land-primitive-rebase-reverify-advance`.
97
97
 
98
98
  ## The prompt handed to the work agent (the `## Prompt` wrapper)
99
99
 
@@ -226,6 +226,8 @@ body tasks/ready/ -> work/tasks/done/, transcribing your "## Decisions" block in
226
226
  that done record, the completion commit, the lock release, and integration.
227
227
  ```
228
228
 
229
+ The wrapper names the pool path `work/tasks/ready/<slug>.md` because that is where a normal claim finds the body. When the runner resolved the body from another folder (a staged `work/tasks/backlog/` body under `do --allow-backlog`, or a stranded continue from `work/tasks/done/`), it rewrites those path mentions to the folder it actually read. Likewise the source spec is named at `work/specs/tasked/<spec>.md` once the spec has been tasked. The agent is never pointed at a file that does not exist.
230
+
229
231
  The "no git" line is **in-band** in the prompt (not delegated to a host config like a global `AGENTS.md`): a portable runner cannot assume the target machine has any such rule, so the boundary travels with the prompt. This keeps the acceptance-test gate authoritative (the agent can't commit/merge around it) and the runner the single owner of git state.
230
232
 
231
233
  ## Completed-task commit message
@@ -125,7 +125,7 @@ This is the ASYMMETRY between the two regimes: a spec in `specs/tasked/` can sti
125
125
 
126
126
  ### Land = rebase + re-verify + advance (the durable-move invariant)
127
127
 
128
- Every durable `main` move (a task's `tasks/ready → tasks/done`, a spec's `specs/ready → specs/tasked`, a `tasks/ready → tasks/cancelled`) is a LAND, and every land is the same mode-agnostic primitive: **fetch current `main` → rebase the work onto it → re-run `verify` (and review) on the rebased tree → advance.** A lost CAS / moved-`main` between gate and push INVALIDATES any prior green and re-arms the gate (re-rebase, re-`verify`, retry — never a `--force`, never an auto-resolved conflict). Merge mode runs it inline at the serialised land; propose mode runs it at the human checkpoint. Human review is ADDITIVE (intent/design/security), NEVER a substitute for the re-verify on the rebased tree. The durable _why_ — a clean `git` merge validates the AUTHORED context, never the LIVED context — lives in ADR `land-primitive-rebase-reverify-advance`.
128
+ Every durable `main` move (a task's `tasks/ready → tasks/done`, a spec's `specs/ready → specs/tasked`, a `tasks/ready → tasks/cancelled`) is a LAND, and every land is the same mode-agnostic primitive: **fetch current `main` → rebase the work onto it → re-run `verify` (and review) on the rebased tree → advance.** A lost CAS (`main` moved between the gate and the push) re-rebases the work onto the new `main` and retries the push, never a `--force`, never an auto-resolved conflict; it does NOT re-run the gate, so the tree that lands can be one the gate never saw. The CI apply phase reports every land whose tree differs from the gated tree ("landed without re-gate after N lost races", in the run output and as a `Landed-Without-Regate` trailer on the landed commit; ADR `ci-agent-job-holds-no-write-token` decision 2). Merge mode runs it inline at the serialised land; propose mode runs it at the human checkpoint. Human review is ADDITIVE (intent/design/security), NEVER a substitute for the re-verify on the rebased tree. The durable _why_ — a clean `git` merge validates the AUTHORED context, never the LIVED context — lives in ADR `land-primitive-rebase-reverify-advance`.
129
129
 
130
130
  ### `needs-attention` — the post-claim "couldn't finish" state (surfaced on `main` as `needsAnswers:true` + a `stuck`-kind sidecar)
131
131
 
@@ -24,19 +24,26 @@ export interface SpecTask {
24
24
  */
25
25
  export interface SpecCompleteResult {
26
26
  /**
27
- * `true` iff ≥1 task carries `spec:<slug>` AND every such task resides in
28
- * `work/done/`. `false` when no task carries the slug (≥1 is REQUIRED) OR when
29
- * any matching task is still outside `work/done/`.
27
+ * `true` iff ≥1 `spec:<slug>` task resides in `work/tasks/done/` AND every other
28
+ * such task resides in `work/tasks/cancelled/`. `false` when no task carries the
29
+ * slug, when any matching task is still open (backlog / ready / in-progress), or
30
+ * when every matching task is cancelled (see {@link allCancelled}).
30
31
  */
31
32
  complete: boolean;
33
+ /**
34
+ * `true` iff ≥1 task carries `spec:<slug>` AND every one of them is in
35
+ * `work/tasks/cancelled/` (none done): the spec did not complete, it was
36
+ * abandoned. Never `true` together with {@link complete}.
37
+ */
38
+ allCancelled: boolean;
32
39
  /** Every task carrying `spec:<slug>`, across all task folders, sorted by slug. */
33
40
  tasks: SpecTask[];
34
41
  }
35
42
  /**
36
- * Is this spec COMPLETE? Read-only: scan the task lifecycle folders, parse each
43
+ * Is this spec COMPLETE? Read-only: scan every task lifecycle folder, parse each
37
44
  * task's `spec:` via {@link parseFrontmatter}, keep those whose `spec:` equals
38
- * `slug`, and return COMPLETE iff that set is NON-EMPTY and EVERY member resides in
39
- * `work/done/`. Touches no git, no network, no mutation — a pure `work/`-folder
45
+ * `slug`, and return COMPLETE iff ≥1 member resides in `work/tasks/done/` and EVERY
46
+ * member resides in `work/tasks/done/` or `work/tasks/cancelled/`. Touches no git, no network, no mutation — a pure `work/`-folder
40
47
  * residence scan keyed on the parsed `spec:` field.
41
48
  */
42
49
  export declare function isSpecComplete(input: SpecCompleteInput): SpecCompleteResult;
@@ -1 +1 @@
1
- {"version":3,"file":"spec-complete.d.ts","sourceRoot":"","sources":["../src/spec-complete.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,mBAAmB,EAIxB,MAAM,kBAAkB,CAAC;AA2B1B,4DAA4D;AAC5D,KAAK,UAAU,GAAG,mBAAmB,CAAC;AAEtC,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IACjC,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;CACb;AAED,sEAAsE;AACtE,MAAM,WAAW,QAAQ;IACxB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,UAAU,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,KAAK,EAAE,QAAQ,EAAE,CAAC;CAClB;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAwB3E"}
1
+ {"version":3,"file":"spec-complete.d.ts","sourceRoot":"","sources":["../src/spec-complete.ts"],"names":[],"mappings":"AAGA,OAAO,EAEN,KAAK,mBAAmB,EAIxB,MAAM,kBAAkB,CAAC;AAkC1B,4DAA4D;AAC5D,KAAK,UAAU,GAAG,mBAAmB,CAAC;AAEtC,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IACjC,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;CACb;AAED,sEAAsE;AACtE,MAAM,WAAW,QAAQ;IACxB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,MAAM,EAAE,UAAU,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;;OAKG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,kFAAkF;IAClF,KAAK,EAAE,QAAQ,EAAE,CAAC;CAClB;AAcD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAgC3E"}
@@ -5,8 +5,13 @@ import { TASK_LIFECYCLE_FOLDERS, workFolderPath, workItemRel, isWorkItemFile, }
5
5
  /**
6
6
  * The read-only **"is this spec complete?"** core query (spec `issue-intake`, US #8 —
7
7
  * the closure-linkage half). Given a spec slug + a `work/` tree, a spec is COMPLETE
8
- * iff there is **≥1 task carrying `spec:<slug>`** AND **all such tasks reside in
9
- * `work/done/`**. Pure `work/`-folder logic — no seam, no git, no `gh`, no mutation.
8
+ * iff there is **≥1 task carrying `spec:<slug>` in `work/tasks/done/`** AND **every
9
+ * other such task is in `work/tasks/cancelled/`**. A task that names the spec
10
+ * ANYWHERE else (staged in `tasks/backlog/`, in `tasks/ready/`, in progress) keeps
11
+ * the spec incomplete; a cancelled task does not block completion, but a spec whose
12
+ * tasks are ALL cancelled (none done) is NOT complete (reported as
13
+ * {@link SpecCompleteResult.allCancelled}, so the close-job never closes its issue
14
+ * as `completed`). Pure `work/`-folder logic — no seam, no git, no `gh`, no mutation.
10
15
  *
11
16
  * This is the LINKAGE the intake engine emits for CI to ACT on: a spec fans out to N
12
17
  * tasks = N PRs whose tasks carry `spec:` ONLY (no `Refs #N` keyword is emitted),
@@ -19,9 +24,11 @@ import { TASK_LIFECYCLE_FOLDERS, workFolderPath, workItemRel, isWorkItemFile, }
19
24
  * It is a `work/`-FOLDER RESIDENCE scan keyed on the parsed `spec:` field — NOT the
20
25
  * claim ledger (`ledger-read.ts` resolves claim-STATE, a different concern). It
21
26
  * reuses {@link parseFrontmatter} (the `spec:` field) rather than hand-rolling a YAML
22
- * parse, and scans the task lifecycle folders directly: `work/tasks/ready/`,
23
- * `work/in-progress/`, and `work/done/`. A task that has NOT yet landed in
24
- * `work/done/` (still in backlog / in-progress) means the spec is not yet complete.
27
+ * parse, and scans EVERY task lifecycle folder directly ({@link TASK_LIFECYCLE_FOLDERS}:
28
+ * backlog, ready, in-progress, done, cancelled). Task
29
+ * `spec-complete-counts-staged-and-cancelled-tasks`: the scan used to skip
30
+ * `tasks/backlog/`, so a spec whose tasks were still staged read as complete as
31
+ * soon as its first task landed.
25
32
  */
26
33
  /** The task lifecycle folders a `spec:<slug>` task can reside in. */
27
34
  const TASK_FOLDERS = TASK_LIFECYCLE_FOLDERS;
@@ -38,10 +45,10 @@ function listMarkdown(repoPath, folder) {
38
45
  return entries.filter((name) => isWorkItemFile(name)).sort();
39
46
  }
40
47
  /**
41
- * Is this spec COMPLETE? Read-only: scan the task lifecycle folders, parse each
48
+ * Is this spec COMPLETE? Read-only: scan every task lifecycle folder, parse each
42
49
  * task's `spec:` via {@link parseFrontmatter}, keep those whose `spec:` equals
43
- * `slug`, and return COMPLETE iff that set is NON-EMPTY and EVERY member resides in
44
- * `work/done/`. Touches no git, no network, no mutation — a pure `work/`-folder
50
+ * `slug`, and return COMPLETE iff ≥1 member resides in `work/tasks/done/` and EVERY
51
+ * member resides in `work/tasks/done/` or `work/tasks/cancelled/`. Touches no git, no network, no mutation — a pure `work/`-folder
45
52
  * residence scan keyed on the parsed `spec:` field.
46
53
  */
47
54
  export function isSpecComplete(input) {
@@ -61,8 +68,13 @@ export function isSpecComplete(input) {
61
68
  }
62
69
  }
63
70
  tasks.sort((a, b) => a.slug.localeCompare(b.slug));
64
- // COMPLETE iff ≥1 such task AND every one of them is in `work/done/`.
65
- const complete = tasks.length > 0 && tasks.every((s) => s.folder === 'done');
66
- return { complete, tasks };
71
+ // COMPLETE iff ≥1 such task is done AND every one of them is done or
72
+ // cancelled. A staged/ready/in-progress task keeps it open; an all-cancelled
73
+ // set is NOT complete (nothing was delivered).
74
+ const settled = tasks.every((s) => s.folder === 'done' || s.folder === 'cancelled');
75
+ const anyDone = tasks.some((s) => s.folder === 'done');
76
+ const complete = settled && anyDone;
77
+ const allCancelled = tasks.length > 0 && tasks.every((s) => s.folder === 'cancelled');
78
+ return { complete, allCancelled, tasks };
67
79
  }
68
80
  //# sourceMappingURL=spec-complete.js.map