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
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.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
 
@@ -90,6 +90,54 @@ export interface SweepRemoteBranchesResult {
90
90
  * via `git push <arbiter> --delete <branch>`; else retain with a reason.
91
91
  */
92
92
  export declare function sweepRemoteMergedBranches(input: SweepRemoteBranchesInput): SweepRemoteBranchesResult;
93
+ export interface SweepTerminalItemLocksInput {
94
+ /**
95
+ * A local repo (a checkout or a hub mirror) whose `<arbiter>` remote points at
96
+ * the arbiter whose per-item locks to sweep. Only refs are read + deleted.
97
+ */
98
+ cwd: string;
99
+ /** The arbiter remote name (the SAME one the branch sweep targets). */
100
+ arbiter: string;
101
+ /** Sink for human-readable progress notes (per released / kept lock). */
102
+ note?: (message: string) => void;
103
+ /** Only REPORT which locks WOULD be released (the `--dry-run` preview). */
104
+ dryRun?: boolean;
105
+ env?: NodeJS.ProcessEnv;
106
+ }
107
+ export interface SweepTerminalItemLocksResult {
108
+ /** Lock entries whose item is terminal on main and whose ref was deleted. */
109
+ released: string[];
110
+ /** On `dryRun`, the lock entries that WOULD be released (nothing deleted). */
111
+ wouldRelease: string[];
112
+ /** Lock entries left HELD because the item is not terminal on main. */
113
+ kept: string[];
114
+ /**
115
+ * Locks left HELD because their classification or release faulted, including
116
+ * a lease REJECTED because the ref moved between the read and the delete.
117
+ */
118
+ errors: {
119
+ entry: string;
120
+ message: string;
121
+ }[];
122
+ }
123
+ /**
124
+ * Release every per-item lock whose item is already TERMINAL on the arbiter's
125
+ * `main` (task `ci-releases-locks-of-terminal-items`). It rides the SAME
126
+ * `gc --remote-branches` invocation the scheduled `reap-merged-branches` CI job
127
+ * runs, so the locks a merged propose PR leaves behind stop accumulating in CI
128
+ * (where no later claim of that item ever comes to release them) WITHOUT any
129
+ * change to the generated workflows.
130
+ *
131
+ * It is NOT a second mechanism: it is exactly the terminal-lock reconcile behind
132
+ * `status --reconcile-locks` and the claim path
133
+ * ({@link reconcileTerminalItemLocks}): ONE predicate (the item's body rests in a
134
+ * terminal folder on `<arbiter>/main`), every delete leased on the sha that was
135
+ * read (`--force-with-lease`, never forced), every uncertainty resolved towards
136
+ * KEEPING the lock. SCOPE is the one arbiter the branch sweep targets (the
137
+ * `<arbiter>` remote of `cwd`). `dryRun` uses the read-only twin
138
+ * ({@link classifyTerminalItemLocks}). Best-effort and never throws.
139
+ */
140
+ export declare function sweepTerminalItemLocks(input: SweepTerminalItemLocksInput): Promise<SweepTerminalItemLocksResult>;
93
141
  /**
94
142
  * Enumerate the arbiter's remote `work/*` heads + their tips via
95
143
  * `git ls-remote --heads <arbiter> 'work/*'` (one round-trip, no full fetch).
@@ -1 +1 @@
1
- {"version":3,"file":"reap-branches.d.ts","sourceRoot":"","sources":["../src/reap-branches.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAC3B,YAAY,GACZ,iBAAiB,CAAC;AAErB,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAKxE,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;IAC3B,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACzC,iFAAiF;IACjF,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,6EAA6E;IAC7E,SAAS,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,wBAAwB,GAC7B,yBAAyB,CAiG3B;AAeD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GAChC,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAAC,CA4BtC"}
1
+ {"version":3,"file":"reap-branches.d.ts","sourceRoot":"","sources":["../src/reap-branches.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,4EAA4E;AAC5E,MAAM,MAAM,kBAAkB,GAC3B,YAAY,GACZ,iBAAiB,CAAC;AAErB,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAKxE,CAAC;AAEF,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC5B,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,kBAAkB,CAAC;IAC3B,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACxC;;;;OAIG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACzC,iFAAiF;IACjF,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,6EAA6E;IAC7E,SAAS,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,wBAAwB,GAC7B,yBAAyB,CAoG3B;AAED,MAAM,WAAW,2BAA2B;IAC3C;;;OAGG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,4BAA4B;IAC5C,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uEAAuE;IACvE,IAAI,EAAE,MAAM,EAAE,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,sBAAsB,CAC3C,KAAK,EAAE,2BAA2B,GAChC,OAAO,CAAC,4BAA4B,CAAC,CAkDvC;AAeD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,GAChC,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAAC,CA4BtC"}
@@ -1,5 +1,6 @@
1
1
  import { run } from './git.js';
2
2
  import { isProvablyMergedForReap } from './gc.js';
3
+ import { classifyTerminalItemLocks, reconcileTerminalItemLocks, } from './item-lock.js';
3
4
  import { parseWorkBranchRef } from './slug-namespace.js';
4
5
  /** Human-readable text for each remote-branch retain reason (`sweep` reports). */
5
6
  export const REMOTE_RETAIN_REASON_TEXT = {
@@ -80,6 +81,9 @@ export function sweepRemoteMergedBranches(input) {
80
81
  continue;
81
82
  }
82
83
  run('git', ['update-ref', '-d', `refs/remotes/${input.arbiter}/${branch}`], input.cwd, { env });
84
+ // WRITE-SEAM EXEMPT: `gc --remote-branches` runs in a no-agent job (or by
85
+ // a human), never in a CI agent job, so this merged-branch delete stays a
86
+ // direct push (task `ci-split-route-direct-writes-through-seams`).
83
87
  const del = run('git', ['push', input.arbiter, '--delete', branch], input.cwd, { env });
84
88
  if (del.status !== 0) {
85
89
  // A failed delete is NOT a reap; surface it but keep sweeping the rest.
@@ -100,6 +104,66 @@ export function sweepRemoteMergedBranches(input) {
100
104
  }
101
105
  return { reaped, retained, wouldReap };
102
106
  }
107
+ /**
108
+ * Release every per-item lock whose item is already TERMINAL on the arbiter's
109
+ * `main` (task `ci-releases-locks-of-terminal-items`). It rides the SAME
110
+ * `gc --remote-branches` invocation the scheduled `reap-merged-branches` CI job
111
+ * runs, so the locks a merged propose PR leaves behind stop accumulating in CI
112
+ * (where no later claim of that item ever comes to release them) WITHOUT any
113
+ * change to the generated workflows.
114
+ *
115
+ * It is NOT a second mechanism: it is exactly the terminal-lock reconcile behind
116
+ * `status --reconcile-locks` and the claim path
117
+ * ({@link reconcileTerminalItemLocks}): ONE predicate (the item's body rests in a
118
+ * terminal folder on `<arbiter>/main`), every delete leased on the sha that was
119
+ * read (`--force-with-lease`, never forced), every uncertainty resolved towards
120
+ * KEEPING the lock. SCOPE is the one arbiter the branch sweep targets (the
121
+ * `<arbiter>` remote of `cwd`). `dryRun` uses the read-only twin
122
+ * ({@link classifyTerminalItemLocks}). Best-effort and never throws.
123
+ */
124
+ export async function sweepTerminalItemLocks(input) {
125
+ const note = input.note ?? (() => { });
126
+ const out = {
127
+ released: [],
128
+ wouldRelease: [],
129
+ kept: [],
130
+ errors: [],
131
+ };
132
+ try {
133
+ if (input.dryRun === true) {
134
+ const classified = await classifyTerminalItemLocks(input.cwd, input.arbiter, input.env);
135
+ out.wouldRelease = classified.terminal.map((l) => l.entry);
136
+ out.kept = classified.inFlight.map((l) => l.entry);
137
+ out.errors = classified.errors;
138
+ }
139
+ else {
140
+ const rec = await reconcileTerminalItemLocks(input.cwd, input.arbiter, input.env);
141
+ out.released = rec.released;
142
+ const errored = new Set(rec.errors.map((e) => e.entry));
143
+ // `kept` in the reconcile report ALSO lists a terminal lock whose release
144
+ // was refused; that one is reported under `errors` instead, so the two
145
+ // lists here stay disjoint.
146
+ out.kept = rec.kept.filter((entry) => !errored.has(entry));
147
+ out.errors = rec.errors;
148
+ }
149
+ }
150
+ catch (err) {
151
+ out.errors.push({
152
+ entry: '(locks)',
153
+ message: err instanceof Error ? err.message : String(err),
154
+ });
155
+ }
156
+ for (const entry of out.wouldRelease) {
157
+ note(`Would release lock ${entry} (item terminal on main) on ${input.arbiter}.`);
158
+ }
159
+ for (const entry of out.released) {
160
+ note(`Released lock ${entry} (item terminal on main) on ${input.arbiter}.`);
161
+ }
162
+ for (const e of out.errors) {
163
+ note(`Kept lock ${e.entry}: ${e.message}`);
164
+ }
165
+ return out;
166
+ }
103
167
  /** Push a retained branch into the result + emit its note. */
104
168
  function retain(retained, note, branch, tip, reason) {
105
169
  const reasonText = REMOTE_RETAIN_REASON_TEXT[reason];
@@ -1 +1 @@
1
- {"version":3,"file":"reap-branches.js","sourceRoot":"","sources":["../src/reap-branches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reap-branches.js","sourceRoot":"","sources":["../src/reap-branches.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,198 @@
1
+ import { type RunResult } from './git.js';
2
+ import { pushContinuedBranchWithStaleLeaseRetry, type ContinuedPushResult } from './continue-branch.js';
3
+ import { type RouteToNeedsAttentionOptions, type RouteToNeedsAttentionResult, type DeleteRemoteWorkBranchOptions, type DeleteRemoteWorkBranchResult } from './needs-attention.js';
4
+ import { type PushTreelessResultParams } from './advance-treeless-publish.js';
5
+ /**
6
+ * The **ref-write seam**: the sibling of the ledger-transition write seam
7
+ * ({@link import('./ledger-write.js').LedgerWriteStrategy}) for every network
8
+ * write a CI code path reaches that is NOT a `work/` ledger transition, the
9
+ * review provider, the issue provider or the integrator: the per-item lock ref
10
+ * create / amend / leased delete, the continued work-branch rebase push, the
11
+ * work-branch save (commit WIP + push, without a surface), the remote work-branch
12
+ * delete, the tasking candidates branch push, the tree-less `HEAD:main`
13
+ * publish and the Git LFS object upload.
14
+ *
15
+ * Why it exists (spec `ci-agent-job-without-write-token`, ADR
16
+ * `ci-agent-job-holds-no-write-token`, task
17
+ * `ci-split-route-direct-writes-through-seams`): the CI phase mode records every
18
+ * write in the agent phase and performs it in the apply phase, so every write
19
+ * must be VISIBLE at a seam. Before this seam these sites pushed directly.
20
+ *
21
+ * It is a PURE REFACTOR, the same shape as the ledger seam: exactly ONE strategy
22
+ * ({@link currentRefWrite}) that does exactly what each call site did before (the
23
+ * same git argument lists, the same helpers), no mode, no config. Each method is
24
+ * named for the write's INTENT, not the git plumbing, so a recording strategy can
25
+ * capture "what was about to be written" rather than a raw argument list.
26
+ *
27
+ * A test swaps a method with `vi.spyOn(refWrite, '<method>')` (the same pattern
28
+ * the `ledgerWrite` / `ledgerRead` seams use). The guard test
29
+ * `write-sites-through-seams.test.ts` fails on any new direct `git push` or `gh`
30
+ * write outside the seam implementations and the documented exempt sites.
31
+ */
32
+ export interface RefWriteStrategy {
33
+ /**
34
+ * CREATE a per-item lock ref on the arbiter: push `<commit>:<ref>` with the
35
+ * create-only lease `--force-with-lease=<ref>:` (succeeds iff the ref is
36
+ * absent). Returns the raw push result; the caller interprets it (`acquired`
37
+ * vs contended). CI phase: lock.
38
+ */
39
+ createLockRef(input: LockRefCreateInput): Promise<RunResult>;
40
+ /**
41
+ * DELETE a held per-item lock ref on the arbiter, leased on the sha the caller
42
+ * read (`push --delete <ref> --force-with-lease=<ref>:<expectedSha>`). CI
43
+ * phase: apply (the lease is on the lock job's `lockSha`).
44
+ */
45
+ deleteLockRef(input: LockRefDeleteInput): Promise<RunResult>;
46
+ /**
47
+ * REPLACE a held per-item lock ref on the arbiter with a new lock commit,
48
+ * leased on the sha the caller read (`push <commit>:<ref>
49
+ * --force-with-lease=<ref>:<expectedSha>`): the amend of a held lock (the
50
+ * propose-kept marker, and the answered-merge takeover of a lock carrying
51
+ * it). A concurrent change to the ref rejects the push; it is never forced.
52
+ * CI phase: lock (the takeover) and apply (the marker).
53
+ */
54
+ replaceLockRef(input: LockRefReplaceInput): Promise<RunResult>;
55
+ /**
56
+ * Push the CONTINUED (rebased) kept `work/<slug>` branch with a lease on the
57
+ * tip observed before the rebase, surviving a stale lease by re-fetching and
58
+ * re-rebasing (see {@link pushContinuedBranchWithStaleLeaseRetry}). Throws
59
+ * exactly as that helper does. CI phase: apply (ADR decision 7).
60
+ */
61
+ pushContinuedBranch(input: ContinuedBranchPushInput): ContinuedPushResult;
62
+ /**
63
+ * Push an already-rebased work branch ONCE with a lease on the tip observed
64
+ * earlier (`<commit>:refs/heads/<branch>
65
+ * --force-with-lease=refs/heads/<branch>:<expectedTip>`), with NO retry and NO
66
+ * re-rebase: a stale lease is returned for the caller to report. The CI apply
67
+ * phase's continue push (ADR `ci-agent-job-holds-no-write-token` decision 7:
68
+ * the agent job rebased the kept branch locally, and the lease is the lock
69
+ * job's `continueTip`). CI phase: apply.
70
+ */
71
+ pushLeasedWorkBranch(input: LeasedWorkBranchPushInput): Promise<RunResult>;
72
+ /**
73
+ * SAVE the work branch: commit any uncommitted work as a wip commit and push
74
+ * the work branch to the arbiter, WITHOUT surfacing the item (the recoverable
75
+ * half of a needs-attention route, see {@link routeToNeedsAttention}). Used by
76
+ * the deadline checkpoint save. CI phase: apply.
77
+ */
78
+ saveWorkBranch(input: RouteToNeedsAttentionOptions): Promise<RouteToNeedsAttentionResult>;
79
+ /**
80
+ * DELETE the remote `work/task-<slug>` branch on the arbiter (write-through:
81
+ * local refs first, then the arbiter delete; already-gone is tolerated, see
82
+ * {@link deleteRemoteWorkBranchIfPresent}). CI phase: apply.
83
+ */
84
+ deleteRemoteWorkBranch(input: DeleteRemoteWorkBranchOptions): Promise<DeleteRemoteWorkBranchResult>;
85
+ /**
86
+ * Push the tasking candidates branch (`work/spec-<slug>`) to the arbiter, a
87
+ * plain `git push <arbiter> <branch>` (best-effort at the caller). CI phase:
88
+ * apply.
89
+ */
90
+ pushTaskingCandidatesBranch(input: TaskingCandidatesPushInput): Promise<RunResult>;
91
+ /**
92
+ * Publish a tree-less rung's local commit to the arbiter's `main` (`git push
93
+ * HEAD:main` with the bounded re-fetch + rebase retry, never `--force`, see
94
+ * {@link pushTreelessResult}). CI phase: apply.
95
+ */
96
+ publishTreelessResult(input: PushTreelessResultParams): Promise<void>;
97
+ /**
98
+ * UPLOAD Git LFS objects already in `cwd`'s local LFS store to the arbiter's
99
+ * LFS endpoint (`git lfs push --object-id <arbiter> <oids>`, in batches),
100
+ * BEFORE any ref that points at them (ADR `ci-agent-job-holds-no-write-token`
101
+ * decision 6). Returns the first failing batch's result, else the last one.
102
+ * CI phase: apply.
103
+ */
104
+ pushLfsObjects(input: LfsObjectsPushInput): Promise<RunResult>;
105
+ }
106
+ /** Input of {@link RefWriteStrategy.pushLfsObjects}. */
107
+ export interface LfsObjectsPushInput {
108
+ /** The arbiter remote name (its LFS endpoint comes from `cwd`'s config and `.lfsconfig`). */
109
+ arbiter: string;
110
+ /** The sha256 oids to upload (each already in the local store). */
111
+ oids: readonly string[];
112
+ /** Working clone the push runs in. */
113
+ cwd: string;
114
+ /** Environment for the child git process. */
115
+ env: NodeJS.ProcessEnv | undefined;
116
+ }
117
+ /** Input of {@link RefWriteStrategy.createLockRef}. */
118
+ export interface LockRefCreateInput {
119
+ /** The arbiter remote name. */
120
+ arbiter: string;
121
+ /** The full lock ref (`refs/dorfl/lock/<entry>`). */
122
+ ref: string;
123
+ /** The prepared (parentless) lock commit to publish at {@link ref}. */
124
+ commit: string;
125
+ /** Working clone the push runs in. */
126
+ cwd: string;
127
+ /** Environment for the child git process. */
128
+ env: NodeJS.ProcessEnv | undefined;
129
+ }
130
+ /** Input of {@link RefWriteStrategy.deleteLockRef}. */
131
+ export interface LockRefDeleteInput {
132
+ /** The arbiter remote name. */
133
+ arbiter: string;
134
+ /** The full lock ref (`refs/dorfl/lock/<entry>`). */
135
+ ref: string;
136
+ /** The ref's sha the caller read; the delete is leased on it. */
137
+ expectedSha: string;
138
+ /** Working clone the push runs in. */
139
+ cwd: string;
140
+ /** Environment for the child git process. */
141
+ env: NodeJS.ProcessEnv | undefined;
142
+ }
143
+ /** Input of {@link RefWriteStrategy.replaceLockRef}. */
144
+ export interface LockRefReplaceInput {
145
+ /** The arbiter remote name. */
146
+ arbiter: string;
147
+ /** The full lock ref (`refs/dorfl/lock/<entry>`). */
148
+ ref: string;
149
+ /** The prepared (parentless) lock commit to publish at {@link ref}. */
150
+ commit: string;
151
+ /** The ref's sha the caller read; the replace is leased on it. */
152
+ expectedSha: string;
153
+ /** Working clone the push runs in. */
154
+ cwd: string;
155
+ /** Environment for the child git process. */
156
+ env: NodeJS.ProcessEnv | undefined;
157
+ }
158
+ /** Input of {@link RefWriteStrategy.pushContinuedBranch}. */
159
+ export type ContinuedBranchPushInput = Parameters<typeof pushContinuedBranchWithStaleLeaseRetry>[0];
160
+ /** Input of {@link RefWriteStrategy.pushLeasedWorkBranch}. */
161
+ export interface LeasedWorkBranchPushInput {
162
+ /** The arbiter remote name. */
163
+ arbiter: string;
164
+ /** The work branch (`work/task-<slug>`), unqualified. */
165
+ branch: string;
166
+ /** The commit to publish as the branch's tip. */
167
+ commit: string;
168
+ /** The branch tip the caller observed on the arbiter; the push is leased on it. */
169
+ expectedTip: string;
170
+ /** Working clone the push runs in. */
171
+ cwd: string;
172
+ /** Environment for the child git process. */
173
+ env: NodeJS.ProcessEnv | undefined;
174
+ }
175
+ /** Input of {@link RefWriteStrategy.pushTaskingCandidatesBranch}. */
176
+ export interface TaskingCandidatesPushInput {
177
+ /** The arbiter remote name. */
178
+ arbiter: string;
179
+ /** The candidates branch (`work/spec-<slug>`). */
180
+ branch: string;
181
+ /** Working clone the push runs in. */
182
+ cwd: string;
183
+ /** Environment for the child git process. */
184
+ env: NodeJS.ProcessEnv | undefined;
185
+ }
186
+ /**
187
+ * The ONLY ref-write strategy: current behaviour, the exact git argument lists
188
+ * and helpers the call sites used before they were routed through the seam.
189
+ */
190
+ export declare const currentRefWrite: RefWriteStrategy;
191
+ /**
192
+ * The active ref-write strategy. There is exactly one (current behaviour); this
193
+ * indirection is the seam's single insertion point, NOT a selectable mode. Call
194
+ * sites go through `refWrite.<method>(...)` so a test (and later the CI phase
195
+ * mode) can replace a method on this object.
196
+ */
197
+ export declare const refWrite: RefWriteStrategy;
198
+ //# sourceMappingURL=ref-write.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-write.d.ts","sourceRoot":"","sources":["../src/ref-write.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { runAsync } from './git.js';
2
+ import { pushContinuedBranchWithStaleLeaseRetry, } from './continue-branch.js';
3
+ import { routeToNeedsAttention, deleteRemoteWorkBranchIfPresent, } from './needs-attention.js';
4
+ import { pushTreelessResult, } from './advance-treeless-publish.js';
5
+ /** How many oids one `git lfs push --object-id` is given. */
6
+ const LFS_PUSH_BATCH = 100;
7
+ /**
8
+ * The ONLY ref-write strategy: current behaviour, the exact git argument lists
9
+ * and helpers the call sites used before they were routed through the seam.
10
+ */
11
+ export const currentRefWrite = {
12
+ createLockRef({ arbiter, ref, commit, cwd, env }) {
13
+ return runAsync('git', ['push', arbiter, `${commit}:${ref}`, `--force-with-lease=${ref}:`], cwd, { env });
14
+ },
15
+ deleteLockRef({ arbiter, ref, expectedSha, cwd, env }) {
16
+ return runAsync('git', [
17
+ 'push',
18
+ arbiter,
19
+ '--delete',
20
+ ref,
21
+ `--force-with-lease=${ref}:${expectedSha}`,
22
+ ], cwd, { env });
23
+ },
24
+ replaceLockRef({ arbiter, ref, commit, expectedSha, cwd, env }) {
25
+ return runAsync('git', [
26
+ 'push',
27
+ arbiter,
28
+ `${commit}:${ref}`,
29
+ `--force-with-lease=${ref}:${expectedSha}`,
30
+ ], cwd, { env });
31
+ },
32
+ pushContinuedBranch(input) {
33
+ return pushContinuedBranchWithStaleLeaseRetry(input);
34
+ },
35
+ pushLeasedWorkBranch({ arbiter, branch, commit, expectedTip, cwd, env }) {
36
+ const ref = `refs/heads/${branch}`;
37
+ return runAsync('git', [
38
+ 'push',
39
+ arbiter,
40
+ `${commit}:${ref}`,
41
+ `--force-with-lease=${ref}:${expectedTip}`,
42
+ ], cwd, { env });
43
+ },
44
+ saveWorkBranch(input) {
45
+ return routeToNeedsAttention(input);
46
+ },
47
+ deleteRemoteWorkBranch(input) {
48
+ return deleteRemoteWorkBranchIfPresent(input);
49
+ },
50
+ pushTaskingCandidatesBranch({ arbiter, branch, cwd, env }) {
51
+ return runAsync('git', ['push', arbiter, branch], cwd, { env });
52
+ },
53
+ publishTreelessResult(input) {
54
+ return pushTreelessResult(input);
55
+ },
56
+ async pushLfsObjects({ arbiter, oids, cwd, env }) {
57
+ let last = { status: 0, stdout: '', stderr: '' };
58
+ for (let i = 0; i < oids.length; i += LFS_PUSH_BATCH) {
59
+ last = await runAsync('git', [
60
+ 'lfs',
61
+ 'push',
62
+ '--object-id',
63
+ arbiter,
64
+ ...oids.slice(i, i + LFS_PUSH_BATCH),
65
+ ], cwd, { env });
66
+ if (last.status !== 0)
67
+ return last;
68
+ }
69
+ return last;
70
+ },
71
+ };
72
+ /**
73
+ * The active ref-write strategy. There is exactly one (current behaviour); this
74
+ * indirection is the seam's single insertion point, NOT a selectable mode. Call
75
+ * sites go through `refWrite.<method>(...)` so a test (and later the CI phase
76
+ * mode) can replace a method on this object.
77
+ */
78
+ export const refWrite = { ...currentRefWrite };
79
+ //# sourceMappingURL=ref-write.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ref-write.js","sourceRoot":"","sources":["../src/ref-write.ts"],"names":[],"mappings":"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"}
@@ -164,16 +164,15 @@ export const REPO_ALLOWED_KEYS = [
164
164
  // same chain as `integration`/`autoBuild`. It REPLACES the old `autoTriage`
165
165
  // boolean (no alias; no external users owed a migration window, 2026-06-12).
166
166
  'observationTriage',
167
- // `mergeQuestions` (the 3-state `off|ask|auto` gate over the MERGE-QUESTION
167
+ // `mergeQuestions` (the 2-state `off|ask` gate over the MERGE-QUESTION
168
168
  // SURFACER — spec `land-time-reverify-and-parallel-merge-ceiling` Story 17 /
169
169
  // task `merge-questions-gate-axis`) is a genuine repo property exactly like
170
170
  // `observationTriage`: whether THIS repo's unmerged `work/*` branches surface
171
- // as merge-questions (and whether they auto-land) is agreed by all
172
- // collaborators + travels with the repo. SEPARATE axis from
173
- // `observationTriage` (never rides it) with a HIGHER default (`ask`, never
174
- // `off` — a dropped merge-question means pushed work never lands). Resolved
175
- // per-repo through the SAME precedence chain as the rest of the gate family
176
- // (flag > env > per-repo > global > default `ask`).
171
+ // as merge-questions is agreed by all collaborators + travels with the repo.
172
+ // SEPARATE axis from `observationTriage` (never rides it) with a HIGHER
173
+ // default (`ask`, never `off`: a dropped merge-question means pushed work
174
+ // never lands). Resolved per-repo through the SAME precedence chain as the
175
+ // rest of the gate family (env > per-repo > global > default `ask`).
177
176
  'mergeQuestions',
178
177
  // `surfaceBlockers` (the BOOLEAN gate over DECLARED blocked work — whether a
179
178
  // task/spec carrying `needsAnswers:true` is rendered into a question sidecar) is a
@@ -244,7 +243,8 @@ export const REPO_ALLOWED_KEYS = [
244
243
  // is agreed by all collaborators in a wide-matrix CI repo + travels with the
245
244
  // repo. Resolved per-repo through the SAME chain as `freshWorktreeGate`
246
245
  // (flag > env > per-repo > global > default). Safety is unchanged — a lost
247
- // CAS still costs only a re-rebase + re-gate retry, never a `--force`.
246
+ // CAS still costs only a re-rebase and a retried push (no re-gate), never a
247
+ // `--force`.
248
248
  'mergeRetries',
249
249
  // `strictMergeApproval` (the OPT-IN strictness layered on the OQ6
250
250
  // stale-approval default — spec `land-time-reverify-and-parallel-merge-ceiling`