@telora/daemon 0.22.132 → 0.22.136

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 (549) hide show
  1. package/build-info.json +6 -3
  2. package/dist/audit/audit-hooks.d.ts +6 -2
  3. package/dist/audit/audit-hooks.d.ts.map +1 -1
  4. package/dist/audit/audit-hooks.js +12 -5
  5. package/dist/audit/audit-hooks.js.map +1 -1
  6. package/dist/audit/audit-phase.js +1 -1
  7. package/dist/audit/audit-phase.js.map +1 -1
  8. package/dist/backends/index.d.ts.map +1 -1
  9. package/dist/backends/index.js +1 -0
  10. package/dist/backends/index.js.map +1 -1
  11. package/dist/completion/completion-phase-registry.d.ts +4 -0
  12. package/dist/completion/completion-phase-registry.d.ts.map +1 -1
  13. package/dist/completion/completion-phase-registry.js +63 -18
  14. package/dist/completion/completion-phase-registry.js.map +1 -1
  15. package/dist/completion/exit-classification.d.ts.map +1 -1
  16. package/dist/completion/exit-classification.js +1 -0
  17. package/dist/completion/exit-classification.js.map +1 -1
  18. package/dist/completion/review-approved-head-gate.d.ts +53 -0
  19. package/dist/completion/review-approved-head-gate.d.ts.map +1 -0
  20. package/dist/completion/review-approved-head-gate.js +124 -0
  21. package/dist/completion/review-approved-head-gate.js.map +1 -0
  22. package/dist/completion/review-census-record.d.ts +52 -0
  23. package/dist/completion/review-census-record.d.ts.map +1 -0
  24. package/dist/completion/review-census-record.js +145 -0
  25. package/dist/completion/review-census-record.js.map +1 -0
  26. package/dist/completion/review-exit-deps.d.ts +5 -1
  27. package/dist/completion/review-exit-deps.d.ts.map +1 -1
  28. package/dist/completion/review-exit-deps.js +7 -2
  29. package/dist/completion/review-exit-deps.js.map +1 -1
  30. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  31. package/dist/completion/review-exit-phase.js +29 -16
  32. package/dist/completion/review-exit-phase.js.map +1 -1
  33. package/dist/completion/review-exit-progress.d.ts +8 -0
  34. package/dist/completion/review-exit-progress.d.ts.map +1 -1
  35. package/dist/completion/review-exit-progress.js +14 -0
  36. package/dist/completion/review-exit-progress.js.map +1 -1
  37. package/dist/completion/review-exit-shortfall-park.d.ts +14 -0
  38. package/dist/completion/review-exit-shortfall-park.d.ts.map +1 -0
  39. package/dist/completion/review-exit-shortfall-park.js +52 -0
  40. package/dist/completion/review-exit-shortfall-park.js.map +1 -0
  41. package/dist/completion/review-exit-shortfall.js +1 -1
  42. package/dist/completion/review-exit-shortfall.js.map +1 -1
  43. package/dist/completion/review-exit-verdict-gate.d.ts +58 -0
  44. package/dist/completion/review-exit-verdict-gate.d.ts.map +1 -1
  45. package/dist/completion/review-exit-verdict-gate.js +68 -8
  46. package/dist/completion/review-exit-verdict-gate.js.map +1 -1
  47. package/dist/completion/review-next-step.d.ts +15 -3
  48. package/dist/completion/review-next-step.d.ts.map +1 -1
  49. package/dist/completion/review-next-step.js +7 -2
  50. package/dist/completion/review-next-step.js.map +1 -1
  51. package/dist/completion/standing-approval-convergence.d.ts +68 -0
  52. package/dist/completion/standing-approval-convergence.d.ts.map +1 -0
  53. package/dist/completion/standing-approval-convergence.js +230 -0
  54. package/dist/completion/standing-approval-convergence.js.map +1 -0
  55. package/dist/completion/standing-approval-deps.d.ts +5 -0
  56. package/dist/completion/standing-approval-deps.d.ts.map +1 -0
  57. package/dist/completion/standing-approval-deps.js +37 -0
  58. package/dist/completion/standing-approval-deps.js.map +1 -0
  59. package/dist/completion/state-cascade.d.ts +11 -0
  60. package/dist/completion/state-cascade.d.ts.map +1 -1
  61. package/dist/completion/state-cascade.js +40 -1
  62. package/dist/completion/state-cascade.js.map +1 -1
  63. package/dist/completion/team-lifecycle.d.ts +14 -2
  64. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  65. package/dist/completion/team-lifecycle.js +36 -36
  66. package/dist/completion/team-lifecycle.js.map +1 -1
  67. package/dist/completion/terminated-work-reconcile.d.ts +3 -1
  68. package/dist/completion/terminated-work-reconcile.d.ts.map +1 -1
  69. package/dist/completion/terminated-work-reconcile.js +24 -11
  70. package/dist/completion/terminated-work-reconcile.js.map +1 -1
  71. package/dist/delivery/delivery-advance-block.d.ts +6 -0
  72. package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
  73. package/dist/delivery/delivery-advance-block.js +29 -3
  74. package/dist/delivery/delivery-advance-block.js.map +1 -1
  75. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  76. package/dist/delivery/delivery-reconciler.js +4 -1
  77. package/dist/delivery/delivery-reconciler.js.map +1 -1
  78. package/dist/delivery/operator-hold.d.ts.map +1 -1
  79. package/dist/delivery/operator-hold.js +3 -1
  80. package/dist/delivery/operator-hold.js.map +1 -1
  81. package/dist/directive/directive-executor.d.ts.map +1 -1
  82. package/dist/directive/directive-executor.js +6 -0
  83. package/dist/directive/directive-executor.js.map +1 -1
  84. package/dist/directive/directive-queue.d.ts +8 -0
  85. package/dist/directive/directive-queue.d.ts.map +1 -1
  86. package/dist/directive/directive-queue.js +20 -0
  87. package/dist/directive/directive-queue.js.map +1 -1
  88. package/dist/directive/phase-sync.d.ts +5 -0
  89. package/dist/directive/phase-sync.d.ts.map +1 -1
  90. package/dist/directive/phase-sync.js +11 -1
  91. package/dist/directive/phase-sync.js.map +1 -1
  92. package/dist/directive/stranded-review-reroute.d.ts +37 -0
  93. package/dist/directive/stranded-review-reroute.d.ts.map +1 -0
  94. package/dist/directive/stranded-review-reroute.js +150 -0
  95. package/dist/directive/stranded-review-reroute.js.map +1 -0
  96. package/dist/focus/focus-engine.d.ts.map +1 -1
  97. package/dist/focus/focus-engine.js +15 -3
  98. package/dist/focus/focus-engine.js.map +1 -1
  99. package/dist/focus/focus-executor.d.ts.map +1 -1
  100. package/dist/focus/focus-executor.js +9 -65
  101. package/dist/focus/focus-executor.js.map +1 -1
  102. package/dist/focus/focus-lifecycle.d.ts +12 -0
  103. package/dist/focus/focus-lifecycle.d.ts.map +1 -1
  104. package/dist/focus/focus-lifecycle.js +66 -37
  105. package/dist/focus/focus-lifecycle.js.map +1 -1
  106. package/dist/focus/focus-phase.d.ts.map +1 -1
  107. package/dist/focus/focus-phase.js +6 -0
  108. package/dist/focus/focus-phase.js.map +1 -1
  109. package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
  110. package/dist/focus/focus-spawn-decision.js +1 -0
  111. package/dist/focus/focus-spawn-decision.js.map +1 -1
  112. package/dist/focus/focus-team-state.d.ts +10 -0
  113. package/dist/focus/focus-team-state.d.ts.map +1 -1
  114. package/dist/focus/focus-team-state.js +19 -1
  115. package/dist/focus/focus-team-state.js.map +1 -1
  116. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  117. package/dist/focus/listener-auto-advance.js +1 -0
  118. package/dist/focus/listener-auto-advance.js.map +1 -1
  119. package/dist/focus/listener-spawn.d.ts +10 -0
  120. package/dist/focus/listener-spawn.d.ts.map +1 -1
  121. package/dist/focus/listener-spawn.js +46 -4
  122. package/dist/focus/listener-spawn.js.map +1 -1
  123. package/dist/focus/listener-state.d.ts.map +1 -1
  124. package/dist/focus/listener-state.js +11 -1
  125. package/dist/focus/listener-state.js.map +1 -1
  126. package/dist/focus/listener.d.ts +42 -0
  127. package/dist/focus/listener.d.ts.map +1 -1
  128. package/dist/focus/listener.js +62 -33
  129. package/dist/focus/listener.js.map +1 -1
  130. package/dist/focus/pending-review-approved-head.d.ts +41 -0
  131. package/dist/focus/pending-review-approved-head.d.ts.map +1 -0
  132. package/dist/focus/pending-review-approved-head.js +198 -0
  133. package/dist/focus/pending-review-approved-head.js.map +1 -0
  134. package/dist/focus/pending-spawn-pass-deps.d.ts +5 -0
  135. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  136. package/dist/focus/pending-spawn-pass-deps.js +2 -1
  137. package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
  138. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  139. package/dist/focus/pending-spawn-review-next-step.js +26 -4
  140. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  141. package/dist/focus/review-spawn-coverage.d.ts +87 -0
  142. package/dist/focus/review-spawn-coverage.d.ts.map +1 -0
  143. package/dist/focus/review-spawn-coverage.js +104 -0
  144. package/dist/focus/review-spawn-coverage.js.map +1 -0
  145. package/dist/focus/session-health.d.ts +5 -2
  146. package/dist/focus/session-health.d.ts.map +1 -1
  147. package/dist/focus/session-health.js +2 -1
  148. package/dist/focus/session-health.js.map +1 -1
  149. package/dist/focus/session-process-reap.d.ts +50 -0
  150. package/dist/focus/session-process-reap.d.ts.map +1 -0
  151. package/dist/focus/session-process-reap.js +77 -0
  152. package/dist/focus/session-process-reap.js.map +1 -0
  153. package/dist/focus/unchanged-reviewed-head.d.ts +40 -0
  154. package/dist/focus/unchanged-reviewed-head.d.ts.map +1 -0
  155. package/dist/focus/unchanged-reviewed-head.js +84 -0
  156. package/dist/focus/unchanged-reviewed-head.js.map +1 -0
  157. package/dist/focus/verify-open-issues.d.ts +4 -19
  158. package/dist/focus/verify-open-issues.d.ts.map +1 -1
  159. package/dist/focus/verify-open-issues.js +83 -41
  160. package/dist/focus/verify-open-issues.js.map +1 -1
  161. package/dist/git/focus-integration-sync.d.ts +61 -0
  162. package/dist/git/focus-integration-sync.d.ts.map +1 -0
  163. package/dist/git/focus-integration-sync.js +73 -0
  164. package/dist/git/focus-integration-sync.js.map +1 -0
  165. package/dist/git/focus-own-delta.d.ts +38 -0
  166. package/dist/git/focus-own-delta.d.ts.map +1 -0
  167. package/dist/git/focus-own-delta.js +193 -0
  168. package/dist/git/focus-own-delta.js.map +1 -0
  169. package/dist/git/index.d.ts +2 -0
  170. package/dist/git/index.d.ts.map +1 -1
  171. package/dist/git/index.js +4 -0
  172. package/dist/git/index.js.map +1 -1
  173. package/dist/git/merge.d.ts.map +1 -1
  174. package/dist/git/merge.js +11 -1
  175. package/dist/git/merge.js.map +1 -1
  176. package/dist/git/resolution-restore.d.ts +66 -0
  177. package/dist/git/resolution-restore.d.ts.map +1 -0
  178. package/dist/git/resolution-restore.js +331 -0
  179. package/dist/git/resolution-restore.js.map +1 -0
  180. package/dist/loops/engine.d.ts.map +1 -1
  181. package/dist/loops/engine.js.map +1 -1
  182. package/dist/merge/abandoned-merge-recovery.d.ts +72 -0
  183. package/dist/merge/abandoned-merge-recovery.d.ts.map +1 -0
  184. package/dist/merge/abandoned-merge-recovery.js +117 -0
  185. package/dist/merge/abandoned-merge-recovery.js.map +1 -0
  186. package/dist/merge/focus-merge.d.ts +19 -0
  187. package/dist/merge/focus-merge.d.ts.map +1 -1
  188. package/dist/merge/focus-merge.js +136 -99
  189. package/dist/merge/focus-merge.js.map +1 -1
  190. package/dist/merge/merge-back-activity.d.ts +11 -0
  191. package/dist/merge/merge-back-activity.d.ts.map +1 -0
  192. package/dist/merge/merge-back-activity.js +57 -0
  193. package/dist/merge/merge-back-activity.js.map +1 -0
  194. package/dist/merge/merge-back-conflict.d.ts +119 -0
  195. package/dist/merge/merge-back-conflict.d.ts.map +1 -0
  196. package/dist/merge/merge-back-conflict.js +178 -0
  197. package/dist/merge/merge-back-conflict.js.map +1 -0
  198. package/dist/merge/merge-back-followup.d.ts +109 -0
  199. package/dist/merge/merge-back-followup.d.ts.map +1 -0
  200. package/dist/merge/merge-back-followup.js +316 -0
  201. package/dist/merge/merge-back-followup.js.map +1 -0
  202. package/dist/merge/merge-back-loop.d.ts +2 -0
  203. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  204. package/dist/merge/merge-back-loop.js +14 -15
  205. package/dist/merge/merge-back-loop.js.map +1 -1
  206. package/dist/merge/merge-conflict-escalation.d.ts +12 -0
  207. package/dist/merge/merge-conflict-escalation.d.ts.map +1 -1
  208. package/dist/merge/merge-conflict-escalation.js +37 -2
  209. package/dist/merge/merge-conflict-escalation.js.map +1 -1
  210. package/dist/merge/merge-gate-coverage.d.ts.map +1 -1
  211. package/dist/merge/merge-gate-coverage.js +1 -0
  212. package/dist/merge/merge-gate-coverage.js.map +1 -1
  213. package/dist/prompt/prompt-listing.d.ts +5 -0
  214. package/dist/prompt/prompt-listing.d.ts.map +1 -1
  215. package/dist/prompt/prompt-listing.js +35 -0
  216. package/dist/prompt/prompt-listing.js.map +1 -1
  217. package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -1
  218. package/dist/prompt-sections/routing-decider-sections.js +2 -0
  219. package/dist/prompt-sections/routing-decider-sections.js.map +1 -1
  220. package/dist/prompt-sections/shortfall-park-section.d.ts +43 -0
  221. package/dist/prompt-sections/shortfall-park-section.d.ts.map +1 -0
  222. package/dist/prompt-sections/shortfall-park-section.js +36 -0
  223. package/dist/prompt-sections/shortfall-park-section.js.map +1 -0
  224. package/dist/queries/agent-resolvable-promotion.d.ts +16 -2
  225. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  226. package/dist/queries/agent-resolvable-promotion.js +30 -3
  227. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  228. package/dist/queries/cause-key.d.ts +17 -22
  229. package/dist/queries/cause-key.d.ts.map +1 -1
  230. package/dist/queries/cause-key.js +50 -1
  231. package/dist/queries/cause-key.js.map +1 -1
  232. package/dist/queries/commit-attributions.d.ts +18 -0
  233. package/dist/queries/commit-attributions.d.ts.map +1 -0
  234. package/dist/queries/commit-attributions.js +39 -0
  235. package/dist/queries/commit-attributions.js.map +1 -0
  236. package/dist/queries/deliveries.d.ts.map +1 -1
  237. package/dist/queries/deliveries.js +3 -1
  238. package/dist/queries/deliveries.js.map +1 -1
  239. package/dist/queries/delivery-gate-state.d.ts +21 -5
  240. package/dist/queries/delivery-gate-state.d.ts.map +1 -1
  241. package/dist/queries/delivery-gate-state.js +35 -9
  242. package/dist/queries/delivery-gate-state.js.map +1 -1
  243. package/dist/queries/escalation-consumption.d.ts.map +1 -1
  244. package/dist/queries/escalation-consumption.js +2 -1
  245. package/dist/queries/escalation-consumption.js.map +1 -1
  246. package/dist/queries/escalation-field-bounds.d.ts +48 -0
  247. package/dist/queries/escalation-field-bounds.d.ts.map +1 -0
  248. package/dist/queries/escalation-field-bounds.js +83 -0
  249. package/dist/queries/escalation-field-bounds.js.map +1 -0
  250. package/dist/queries/escalation-refusal.d.ts +88 -0
  251. package/dist/queries/escalation-refusal.d.ts.map +1 -0
  252. package/dist/queries/escalation-refusal.js +217 -0
  253. package/dist/queries/escalation-refusal.js.map +1 -0
  254. package/dist/queries/escalation-suppression.d.ts +6 -0
  255. package/dist/queries/escalation-suppression.d.ts.map +1 -1
  256. package/dist/queries/escalation-suppression.js +4 -13
  257. package/dist/queries/escalation-suppression.js.map +1 -1
  258. package/dist/queries/escalations.d.ts +5 -13
  259. package/dist/queries/escalations.d.ts.map +1 -1
  260. package/dist/queries/escalations.js +25 -30
  261. package/dist/queries/escalations.js.map +1 -1
  262. package/dist/queries/filing-observation.d.ts.map +1 -1
  263. package/dist/queries/filing-observation.js +3 -1
  264. package/dist/queries/filing-observation.js.map +1 -1
  265. package/dist/queries/focus-review-approval.d.ts +2 -0
  266. package/dist/queries/focus-review-approval.d.ts.map +1 -1
  267. package/dist/queries/focus-review-approval.js +7 -2
  268. package/dist/queries/focus-review-approval.js.map +1 -1
  269. package/dist/queries/focuses.d.ts.map +1 -1
  270. package/dist/queries/focuses.js +2 -1
  271. package/dist/queries/focuses.js.map +1 -1
  272. package/dist/queries/incident-correlation.d.ts.map +1 -1
  273. package/dist/queries/incident-correlation.js +4 -1
  274. package/dist/queries/incident-correlation.js.map +1 -1
  275. package/dist/queries/misattributed-commits-record.d.ts +26 -0
  276. package/dist/queries/misattributed-commits-record.d.ts.map +1 -0
  277. package/dist/queries/misattributed-commits-record.js +5 -0
  278. package/dist/queries/misattributed-commits-record.js.map +1 -0
  279. package/dist/queries/reality-tree.d.ts.map +1 -1
  280. package/dist/queries/reality-tree.js +2 -1
  281. package/dist/queries/reality-tree.js.map +1 -1
  282. package/dist/queries/schemas.d.ts +3 -0
  283. package/dist/queries/schemas.d.ts.map +1 -1
  284. package/dist/queries/schemas.js +1 -0
  285. package/dist/queries/schemas.js.map +1 -1
  286. package/dist/queries/shared.js +1 -1
  287. package/dist/queries/shortfall-park-record.d.ts +48 -0
  288. package/dist/queries/shortfall-park-record.d.ts.map +1 -0
  289. package/dist/queries/shortfall-park-record.js +31 -0
  290. package/dist/queries/shortfall-park-record.js.map +1 -0
  291. package/dist/queries/shortfall-rulings.d.ts +71 -0
  292. package/dist/queries/shortfall-rulings.d.ts.map +1 -0
  293. package/dist/queries/shortfall-rulings.js +53 -0
  294. package/dist/queries/shortfall-rulings.js.map +1 -0
  295. package/dist/queries/verification.d.ts +20 -1
  296. package/dist/queries/verification.d.ts.map +1 -1
  297. package/dist/queries/verification.js +48 -8
  298. package/dist/queries/verification.js.map +1 -1
  299. package/dist/resolvers/index.d.ts +2 -2
  300. package/dist/resolvers/index.d.ts.map +1 -1
  301. package/dist/resolvers/index.js +1 -1
  302. package/dist/resolvers/index.js.map +1 -1
  303. package/dist/resolvers/shared/delivery-trailer.d.ts +99 -0
  304. package/dist/resolvers/shared/delivery-trailer.d.ts.map +1 -0
  305. package/dist/resolvers/shared/delivery-trailer.js +103 -0
  306. package/dist/resolvers/shared/delivery-trailer.js.map +1 -0
  307. package/dist/resolvers/shared/git-diff.d.ts +11 -84
  308. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  309. package/dist/resolvers/shared/git-diff.js +17 -84
  310. package/dist/resolvers/shared/git-diff.js.map +1 -1
  311. package/dist/resolvers/shared/review-window-commits.d.ts.map +1 -1
  312. package/dist/resolvers/shared/review-window-commits.js +1 -0
  313. package/dist/resolvers/shared/review-window-commits.js.map +1 -1
  314. package/dist/session/session-lineage.d.ts.map +1 -1
  315. package/dist/session/session-lineage.js +1 -0
  316. package/dist/session/session-lineage.js.map +1 -1
  317. package/dist/shell/config.d.ts +2 -1
  318. package/dist/shell/config.d.ts.map +1 -1
  319. package/dist/shell/config.js +21 -4
  320. package/dist/shell/config.js.map +1 -1
  321. package/dist/shell/crash-recovery.d.ts +3 -7
  322. package/dist/shell/crash-recovery.d.ts.map +1 -1
  323. package/dist/shell/crash-recovery.js +28 -31
  324. package/dist/shell/crash-recovery.js.map +1 -1
  325. package/dist/shell/orphan-capture.d.ts +42 -0
  326. package/dist/shell/orphan-capture.d.ts.map +1 -0
  327. package/dist/shell/orphan-capture.js +53 -0
  328. package/dist/shell/orphan-capture.js.map +1 -0
  329. package/dist/shell/worker-pidfile.d.ts +22 -4
  330. package/dist/shell/worker-pidfile.d.ts.map +1 -1
  331. package/dist/shell/worker-pidfile.js +51 -13
  332. package/dist/shell/worker-pidfile.js.map +1 -1
  333. package/dist/spawn/helpers.d.ts +3 -0
  334. package/dist/spawn/helpers.d.ts.map +1 -1
  335. package/dist/spawn/helpers.js +28 -9
  336. package/dist/spawn/helpers.js.map +1 -1
  337. package/dist/spawn/lead-launch.d.ts +34 -0
  338. package/dist/spawn/lead-launch.d.ts.map +1 -0
  339. package/dist/spawn/lead-launch.js +34 -0
  340. package/dist/spawn/lead-launch.js.map +1 -0
  341. package/dist/spawn/lead-process-ownership.d.ts +91 -0
  342. package/dist/spawn/lead-process-ownership.d.ts.map +1 -0
  343. package/dist/spawn/lead-process-ownership.js +120 -0
  344. package/dist/spawn/lead-process-ownership.js.map +1 -0
  345. package/dist/spawn/lifecycle.d.ts +43 -3
  346. package/dist/spawn/lifecycle.d.ts.map +1 -1
  347. package/dist/spawn/lifecycle.js +75 -44
  348. package/dist/spawn/lifecycle.js.map +1 -1
  349. package/dist/spawn/liveness.d.ts.map +1 -1
  350. package/dist/spawn/liveness.js +5 -1
  351. package/dist/spawn/liveness.js.map +1 -1
  352. package/dist/spawn/one-shot-process-ownership.d.ts +48 -0
  353. package/dist/spawn/one-shot-process-ownership.d.ts.map +1 -0
  354. package/dist/spawn/one-shot-process-ownership.js +44 -0
  355. package/dist/spawn/one-shot-process-ownership.js.map +1 -0
  356. package/dist/spawn/process-group-kill.d.ts +79 -0
  357. package/dist/spawn/process-group-kill.d.ts.map +1 -0
  358. package/dist/spawn/process-group-kill.js +210 -0
  359. package/dist/spawn/process-group-kill.js.map +1 -0
  360. package/dist/spawn/process-spawn.d.ts +18 -1
  361. package/dist/spawn/process-spawn.d.ts.map +1 -1
  362. package/dist/spawn/process-spawn.js +51 -20
  363. package/dist/spawn/process-spawn.js.map +1 -1
  364. package/dist/spawn/resolution-budget.d.ts +38 -0
  365. package/dist/spawn/resolution-budget.d.ts.map +1 -0
  366. package/dist/spawn/resolution-budget.js +87 -0
  367. package/dist/spawn/resolution-budget.js.map +1 -0
  368. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  369. package/dist/spawn/review-hold-park.js +37 -5
  370. package/dist/spawn/review-hold-park.js.map +1 -1
  371. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  372. package/dist/spawn/spawn-cooldown.js +9 -0
  373. package/dist/spawn/spawn-cooldown.js.map +1 -1
  374. package/dist/spawn/untracked-lead-sweep.d.ts +29 -0
  375. package/dist/spawn/untracked-lead-sweep.d.ts.map +1 -0
  376. package/dist/spawn/untracked-lead-sweep.js +100 -0
  377. package/dist/spawn/untracked-lead-sweep.js.map +1 -0
  378. package/dist/spawn/worker-registry.d.ts.map +1 -1
  379. package/dist/spawn/worker-registry.js +4 -1
  380. package/dist/spawn/worker-registry.js.map +1 -1
  381. package/dist/spawn/worktree-session.d.ts.map +1 -1
  382. package/dist/spawn/worktree-session.js +8 -6
  383. package/dist/spawn/worktree-session.js.map +1 -1
  384. package/dist/testing/fixtures/exit-capture-verify.d.ts +41 -0
  385. package/dist/testing/fixtures/exit-capture-verify.d.ts.map +1 -0
  386. package/dist/testing/fixtures/exit-capture-verify.js +152 -0
  387. package/dist/testing/fixtures/exit-capture-verify.js.map +1 -0
  388. package/dist/testing/fixtures/index.js +1 -1
  389. package/dist/testing/fixtures/pending-spawn-world.d.ts +7 -0
  390. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  391. package/dist/testing/fixtures/pending-spawn-world.js +21 -1
  392. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  393. package/dist/testing/fixtures/stubborn-lead-process.d.ts +22 -0
  394. package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -0
  395. package/dist/testing/fixtures/stubborn-lead-process.js +68 -0
  396. package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -0
  397. package/dist/types/config.d.ts +13 -0
  398. package/dist/types/config.d.ts.map +1 -1
  399. package/dist/types/focus.d.ts +7 -0
  400. package/dist/types/focus.d.ts.map +1 -1
  401. package/dist/types/index.js +1 -1
  402. package/dist/verify/commit-verdict-record.d.ts +13 -3
  403. package/dist/verify/commit-verdict-record.d.ts.map +1 -1
  404. package/dist/verify/commit-verdict-record.js +45 -25
  405. package/dist/verify/commit-verdict-record.js.map +1 -1
  406. package/dist/verify/credit-rearm.d.ts +18 -0
  407. package/dist/verify/credit-rearm.d.ts.map +1 -0
  408. package/dist/verify/credit-rearm.js +69 -0
  409. package/dist/verify/credit-rearm.js.map +1 -0
  410. package/dist/verify/delivery-commit-set.d.ts +10 -0
  411. package/dist/verify/delivery-commit-set.d.ts.map +1 -0
  412. package/dist/verify/delivery-commit-set.js +82 -0
  413. package/dist/verify/delivery-commit-set.js.map +1 -0
  414. package/dist/verify/explicit-rearm.d.ts.map +1 -1
  415. package/dist/verify/explicit-rearm.js +2 -0
  416. package/dist/verify/explicit-rearm.js.map +1 -1
  417. package/dist/verify/failure-signature.d.ts.map +1 -1
  418. package/dist/verify/failure-signature.js +1 -0
  419. package/dist/verify/failure-signature.js.map +1 -1
  420. package/dist/verify/gate-run-registry.d.ts.map +1 -1
  421. package/dist/verify/gate-run-registry.js +3 -0
  422. package/dist/verify/gate-run-registry.js.map +1 -1
  423. package/dist/verify/injection-stamp.d.ts +29 -0
  424. package/dist/verify/injection-stamp.d.ts.map +1 -0
  425. package/dist/verify/injection-stamp.js +139 -0
  426. package/dist/verify/injection-stamp.js.map +1 -0
  427. package/dist/verify/misattributed-commits-read.d.ts +31 -0
  428. package/dist/verify/misattributed-commits-read.d.ts.map +1 -0
  429. package/dist/verify/misattributed-commits-read.js +47 -0
  430. package/dist/verify/misattributed-commits-read.js.map +1 -0
  431. package/dist/verify/misattributed-commits.d.ts +52 -0
  432. package/dist/verify/misattributed-commits.d.ts.map +1 -0
  433. package/dist/verify/misattributed-commits.js +148 -0
  434. package/dist/verify/misattributed-commits.js.map +1 -0
  435. package/dist/verify/no-own-delta-verdict.d.ts +47 -0
  436. package/dist/verify/no-own-delta-verdict.d.ts.map +1 -0
  437. package/dist/verify/no-own-delta-verdict.js +74 -0
  438. package/dist/verify/no-own-delta-verdict.js.map +1 -0
  439. package/dist/verify/shortfall-park-escalation.d.ts +41 -0
  440. package/dist/verify/shortfall-park-escalation.d.ts.map +1 -0
  441. package/dist/verify/shortfall-park-escalation.js +177 -0
  442. package/dist/verify/shortfall-park-escalation.js.map +1 -0
  443. package/dist/verify/shortfall-park.d.ts +109 -0
  444. package/dist/verify/shortfall-park.d.ts.map +1 -0
  445. package/dist/verify/shortfall-park.js +208 -0
  446. package/dist/verify/shortfall-park.js.map +1 -0
  447. package/dist/verify/shortfall-repeat.d.ts +47 -16
  448. package/dist/verify/shortfall-repeat.d.ts.map +1 -1
  449. package/dist/verify/shortfall-repeat.js +77 -23
  450. package/dist/verify/shortfall-repeat.js.map +1 -1
  451. package/dist/verify/shortfall-rulings.d.ts +106 -0
  452. package/dist/verify/shortfall-rulings.d.ts.map +1 -0
  453. package/dist/verify/shortfall-rulings.js +118 -0
  454. package/dist/verify/shortfall-rulings.js.map +1 -0
  455. package/dist/verify/stall-detectors.d.ts.map +1 -1
  456. package/dist/verify/stall-detectors.js +10 -4
  457. package/dist/verify/stall-detectors.js.map +1 -1
  458. package/dist/verify/verification-attribution-base.d.ts +26 -0
  459. package/dist/verify/verification-attribution-base.d.ts.map +1 -0
  460. package/dist/verify/verification-attribution-base.js +127 -0
  461. package/dist/verify/verification-attribution-base.js.map +1 -0
  462. package/dist/verify/verification-attribution-deps.d.ts +32 -0
  463. package/dist/verify/verification-attribution-deps.d.ts.map +1 -0
  464. package/dist/verify/verification-attribution-deps.js +209 -0
  465. package/dist/verify/verification-attribution-deps.js.map +1 -0
  466. package/dist/verify/verification-baseline.d.ts +6 -0
  467. package/dist/verify/verification-baseline.d.ts.map +1 -1
  468. package/dist/verify/verification-baseline.js +27 -11
  469. package/dist/verify/verification-baseline.js.map +1 -1
  470. package/dist/verify/verification-commit-sharing.d.ts.map +1 -1
  471. package/dist/verify/verification-commit-sharing.js +30 -8
  472. package/dist/verify/verification-commit-sharing.js.map +1 -1
  473. package/dist/verify/verification-config.d.ts.map +1 -1
  474. package/dist/verify/verification-config.js +2 -0
  475. package/dist/verify/verification-config.js.map +1 -1
  476. package/dist/verify/verification-default-on.d.ts +3 -0
  477. package/dist/verify/verification-default-on.d.ts.map +1 -1
  478. package/dist/verify/verification-default-on.js +5 -1
  479. package/dist/verify/verification-default-on.js.map +1 -1
  480. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  481. package/dist/verify/verification-deps-default.js +61 -120
  482. package/dist/verify/verification-deps-default.js.map +1 -1
  483. package/dist/verify/verification-deps.d.ts +26 -4
  484. package/dist/verify/verification-deps.d.ts.map +1 -1
  485. package/dist/verify/verification-deterministic.d.ts +15 -0
  486. package/dist/verify/verification-deterministic.d.ts.map +1 -1
  487. package/dist/verify/verification-deterministic.js +1 -12
  488. package/dist/verify/verification-deterministic.js.map +1 -1
  489. package/dist/verify/verification-engine.d.ts +9 -6
  490. package/dist/verify/verification-engine.d.ts.map +1 -1
  491. package/dist/verify/verification-engine.js +43 -62
  492. package/dist/verify/verification-engine.js.map +1 -1
  493. package/dist/verify/verification-evidence-unavailable-feedback.d.ts +2 -1
  494. package/dist/verify/verification-evidence-unavailable-feedback.d.ts.map +1 -1
  495. package/dist/verify/verification-evidence-unavailable-feedback.js +19 -1
  496. package/dist/verify/verification-evidence-unavailable-feedback.js.map +1 -1
  497. package/dist/verify/verification-failure-parser.d.ts +57 -1
  498. package/dist/verify/verification-failure-parser.d.ts.map +1 -1
  499. package/dist/verify/verification-failure-parser.js +116 -10
  500. package/dist/verify/verification-failure-parser.js.map +1 -1
  501. package/dist/verify/verification-feedback.d.ts +60 -43
  502. package/dist/verify/verification-feedback.d.ts.map +1 -1
  503. package/dist/verify/verification-feedback.js +115 -120
  504. package/dist/verify/verification-feedback.js.map +1 -1
  505. package/dist/verify/verification-history-reset.d.ts +2 -1
  506. package/dist/verify/verification-history-reset.d.ts.map +1 -1
  507. package/dist/verify/verification-history-reset.js +4 -2
  508. package/dist/verify/verification-history-reset.js.map +1 -1
  509. package/dist/verify/verification-rework-issue.d.ts +87 -0
  510. package/dist/verify/verification-rework-issue.d.ts.map +1 -0
  511. package/dist/verify/verification-rework-issue.js +212 -0
  512. package/dist/verify/verification-rework-issue.js.map +1 -0
  513. package/dist/verify/verification-rework-messages.d.ts.map +1 -1
  514. package/dist/verify/verification-rework-messages.js +10 -0
  515. package/dist/verify/verification-rework-messages.js.map +1 -1
  516. package/dist/verify/verify-gate-stall.d.ts +2 -0
  517. package/dist/verify/verify-gate-stall.d.ts.map +1 -1
  518. package/dist/verify/verify-gate-stall.js +35 -9
  519. package/dist/verify/verify-gate-stall.js.map +1 -1
  520. package/dist/verify/verify-restatement.d.ts.map +1 -1
  521. package/dist/verify/verify-restatement.js +9 -2
  522. package/dist/verify/verify-restatement.js.map +1 -1
  523. package/dist/worktree/capture-attribution-read.d.ts +47 -0
  524. package/dist/worktree/capture-attribution-read.d.ts.map +1 -0
  525. package/dist/worktree/capture-attribution-read.js +98 -0
  526. package/dist/worktree/capture-attribution-read.js.map +1 -0
  527. package/dist/worktree/capture-attribution.d.ts +26 -0
  528. package/dist/worktree/capture-attribution.d.ts.map +1 -0
  529. package/dist/worktree/capture-attribution.js +111 -0
  530. package/dist/worktree/capture-attribution.js.map +1 -0
  531. package/dist/worktree/index.d.ts.map +1 -1
  532. package/dist/worktree/index.js +2 -1
  533. package/dist/worktree/index.js.map +1 -1
  534. package/dist/worktree/provision.d.ts.map +1 -1
  535. package/dist/worktree/provision.js +23 -6
  536. package/dist/worktree/provision.js.map +1 -1
  537. package/dist/worktree/safety.d.ts +14 -4
  538. package/dist/worktree/safety.d.ts.map +1 -1
  539. package/dist/worktree/safety.js +37 -7
  540. package/dist/worktree/safety.js.map +1 -1
  541. package/dist/worktree/scratch-guard.d.ts +53 -2
  542. package/dist/worktree/scratch-guard.d.ts.map +1 -1
  543. package/dist/worktree/scratch-guard.js +115 -30
  544. package/dist/worktree/scratch-guard.js.map +1 -1
  545. package/dist/worktree/unmerged-capture-escalation.d.ts +52 -0
  546. package/dist/worktree/unmerged-capture-escalation.d.ts.map +1 -0
  547. package/dist/worktree/unmerged-capture-escalation.js +64 -0
  548. package/dist/worktree/unmerged-capture-escalation.js.map +1 -0
  549. package/package.json +2 -2
@@ -1,5 +1,7 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: packages/daemon/src/focus/listener-product-poll.test.ts
2
+ // Pinned by: packages/daemon/src/focus/listener-product-poll.test.ts,
3
+ // packages/daemon/src/focus/session-health-passes.test.ts,
4
+ // packages/daemon/src/focus/session-health-poll-sweep.test.ts
3
5
  // PINNED-BY-END
4
6
  import { getAgentRoles } from '../queries/roles.js';
5
7
  import { checkDeliveryAutoAdvance, checkDeliveryWorkStart } from './listener-auto-advance.js';
@@ -13,6 +15,9 @@ import { runStageLifecycleTransitions } from '../focus-stage-lifecycle/index.js'
13
15
  import { safeInterval, withRetry } from '@telora/daemon-core';
14
16
  import { getActiveSessions, updateSession } from '../queries/sessions.js';
15
17
  import { classifySessionsHealth } from './session-health.js';
18
+ import { reapSessionHealthProcesses } from './session-process-reap.js';
19
+ import { sweepUntrackedLeadProcesses } from '../spawn/untracked-lead-sweep.js';
20
+ import { isProcessAlive } from '../spawn/liveness.js';
16
21
  import { resolveSessionSilenceThresholdMinutes } from '../verify/stall-detector-config.js';
17
22
  import { ensureFocusWorktrees, checkForDeactivatedFocuses } from './focus-lifecycle.js';
18
23
  import { detectGitStates } from '../git/index.js';
@@ -210,57 +215,87 @@ export async function runProductPollPhases(pc, overrides = {}) {
210
215
  await phases.runReconcilerShadow(pc);
211
216
  await phases.runNexusPasses(pc);
212
217
  }
218
+ /** The production org-scoped passes. */
219
+ export const productionOrgPollPasses = {
220
+ checkDiscoveryRequests: async () => { await checkDiscoveryRequests(); },
221
+ processReadyFocuses,
222
+ checkAndMergeCompletedDeliveries: async (cfg) => { await checkAndMergeCompletedDeliveries(cfg); },
223
+ checkDirectives: async (cfg) => { await checkDirectives(cfg); },
224
+ sweepExpiredSessionHolds: async () => { await sweepExpiredSessionHolds(Date.now(), buildSessionHoldSweepDeps()); },
225
+ runPendingSpawnPass: async () => { await runPendingSpawnPass(); },
226
+ runCascadeChecks: async (cfg) => { await runCascadeChecks(cfg); },
227
+ runStageLifecycleTransitions: async (cfg) => { await runStageLifecycleTransitions(cfg); },
228
+ checkResolvedMergeConflicts: async (cfg) => { await checkResolvedMergeConflicts(cfg); },
229
+ detectGitStates: async (cfg) => { await detectGitStates(cfg); },
230
+ detectFocusMerges: async (cfg) => { await detectFocusMerges(cfg); },
231
+ checkSessionHealth,
232
+ };
213
233
  /**
214
234
  * The org-scoped rest of one focus poll, run once per tick after every product's
215
235
  * phases (runProductPollPhases). Extracted from startDeliveryListener's tick so
216
236
  * the tick's per-product slice can be observed through the real scheduler.
237
+ * `overrides` replaces passes (tests); production passes nothing. The
238
+ * untracked-process sweep is not overridable here: it always runs, ahead of the
239
+ * session health check (session-health-poll-sweep.test.ts drives it through the
240
+ * scheduled tick).
217
241
  */
218
- async function runOrgPollPasses() {
242
+ export async function runOrgPollPasses(overrides = {}) {
243
+ const passes = { ...productionOrgPollPasses, ...overrides };
219
244
  // Endpoint discovery (D5): org-scoped, once per cycle. Best-effort -- the
220
245
  // daemon is the only LAN-reachable component, so it resolves the add-model
221
246
  // form's pending {baseUrl}/models lookups. FIRE-AND-FORGET (TEL-7): never
222
247
  // awaited, so a slow/blocked endpoint fetch can't delay spawn/merge work.
223
248
  // Its own module-level re-entrancy guard drops overlapping cycles.
224
- void checkDiscoveryRequests().catch((err) => log.warn('discovery poll failed:', err.message));
225
- await processReadyFocuses();
226
- await checkAndMergeCompletedDeliveries(config);
249
+ void passes.checkDiscoveryRequests().catch((err) => log.warn('discovery poll failed:', err.message));
250
+ await passes.processReadyFocuses();
251
+ await passes.checkAndMergeCompletedDeliveries(config);
227
252
  // checkDirectives runs syncFocusPhase (writing
228
253
  // focus.current_workflow_stage_id) and fires stage-change directives
229
254
  // -- including the spawn directive that starts the review team on
230
255
  // entry to the `reviewing` phase. Run it before the cascade so phase
231
256
  // and directive state are settled when the cascade reads them.
232
- await checkDirectives(config);
257
+ await passes.checkDirectives(config);
233
258
  // Sweep expired session holds FIRST (a hold-expiry teardown frees the queued
234
259
  // directive behind it), then spawn pending directives getReadyFocuses skips.
235
- await sweepExpiredSessionHolds(Date.now(), buildSessionHoldSweepDeps());
236
- await runPendingSpawnPass();
260
+ await passes.sweepExpiredSessionHolds();
261
+ await passes.runPendingSpawnPass();
237
262
  // The cascade no longer auto-completes reviews -- closing out a
238
263
  // review and routing verify deliveries to done/verify_failed is the
239
264
  // exclusive responsibility of completion/review-exit-phase.ts's review exit
240
265
  // handler, which gates on the exiting team's sessionType === 'review'
241
266
  // (positive signal that an actual review ran).
242
- await runCascadeChecks(config);
267
+ await passes.runCascadeChecks(config);
243
268
  // New focus workflow lifecycle transitions (D2):
244
269
  // - verify -> review when pipeline_config.review.enabled
245
270
  // - review -> close_loop on state-based convergence
246
271
  // - review -> review_nonconvergent escalation past the N-iter cap
247
272
  // Runs after the legacy cascade so the new authoritative `stage`
248
273
  // column reflects any updates the cascade may have made.
249
- await runStageLifecycleTransitions(config);
250
- await checkResolvedMergeConflicts(config);
251
- await detectGitStates(config);
252
- await detectFocusMerges(config);
274
+ await passes.runStageLifecycleTransitions(config);
275
+ await passes.checkResolvedMergeConflicts(config);
276
+ await passes.detectGitStates(config);
277
+ await passes.detectFocusMerges(config);
253
278
  // NOTE: the targeted daemon-owned stall detectors (verify_failed re-code cap
254
279
  // + review-window staleness) run INSIDE runCascadeChecks above -- they ride
255
280
  // its existing per-focus review-handling loop (reusing the deliveries +
256
281
  // review phase it already fetched) rather than fanning out a second pass.
257
- await checkSessionHealth();
282
+ await runSessionHealthPasses({ checkSessionHealth: passes.checkSessionHealth });
283
+ }
284
+ /**
285
+ * The poll's process-and-session health passes. First the untracked-process
286
+ * sweep ends recorded agent processes no team tracks -- even when their session
287
+ * row is already closed (a reaped row no longer reaches checkSessionHealth) --
288
+ * then the session health check reaps stale rows and their processes.
289
+ */
290
+ export async function runSessionHealthPasses(deps = {}) {
291
+ await sweepUntrackedLeadProcesses(deps.ownership);
292
+ await (deps.checkSessionHealth ?? checkSessionHealth)();
258
293
  }
259
294
  /** The production seams: the real passes, and no per-product phase overrides. */
260
295
  export const productionDeliveryListenerSeams = {
261
296
  processReadyFocuses,
262
297
  productPollPhases: {},
263
- runOrgPollPasses,
298
+ runOrgPollPasses: () => runOrgPollPasses(),
264
299
  };
265
300
  /**
266
301
  * Start polling for ready focuses. `overrides` replaces the seams
@@ -310,7 +345,10 @@ export function startSessionListener() {
310
345
  /** Per-kind warn line for a session the health sweep is closing. */
311
346
  function logHealthCloseDecision(d) {
312
347
  const at = `status=${d.status}, focus=${d.focusId ?? 'none'}, delivery=${d.deliveryId ?? 'none'}`;
313
- if (d.kind === 'silent_abandoned') {
348
+ if (d.kind === 'untracked_process') {
349
+ log.warn(`[health] Untracked live session closed: ${d.sessionId} (its process was ended, ${at})`);
350
+ }
351
+ else if (d.kind === 'silent_abandoned') {
314
352
  log.warn(`[health] Silent-abandoned session reaped: ${d.sessionId} (live process but no ` +
315
353
  `observed call past the silence threshold, ${at}) — the "active" count now changes.`);
316
354
  }
@@ -326,6 +364,8 @@ function healthCloseExitReason(kind) {
326
364
  switch (kind) {
327
365
  case 'silent_abandoned':
328
366
  return 'Session health check: live process but no observed call past the silence threshold (abandoned)';
367
+ case 'untracked_process':
368
+ return 'Session health check: live daemon-spawned process tracked by no team (process terminated)';
329
369
  case 'system_straggler':
330
370
  return 'Session health check: role-less system session straggler (no live process)';
331
371
  default:
@@ -395,7 +435,7 @@ export async function checkSessionHealth() {
395
435
  // Note: full re-registration into activeTeams is not attempted here because
396
436
  // FocusTeamState requires stdin handles, execution config, pipeline config,
397
437
  // and other fields that cannot be reconstructed from a DB session row alone.
398
- // A live process is left alone; the next daemon restart recovers full state.
438
+ // A live process no team tracks is therefore ended, not adopted.
399
439
  const decisions = classifySessionsHealth(activeSessions, {
400
440
  trackedTeamSessionIds: trackedSessionIds,
401
441
  now: Date.now(),
@@ -403,23 +443,12 @@ export async function checkSessionHealth() {
403
443
  // durable activity clock is stale (see classifySessionHealth). Inert until the
404
444
  // read edge projects activity_summary (a null clock stays 'live_process').
405
445
  silenceThresholdMs: resolveSessionSilenceThresholdMinutes() * 60_000,
406
- isProcessAlive: (pid) => {
407
- try {
408
- process.kill(pid, 0); // signal 0 = test if process exists
409
- return true;
410
- }
411
- catch {
412
- return false;
413
- }
414
- },
446
+ isProcessAlive,
415
447
  });
416
- for (const d of decisions) {
417
- if (d.skipReason === 'live_process') {
418
- log.warn(`[health] Session ${d.sessionId} not tracked in-memory but its process is alive — ` +
419
- `skipping orphan detection (focus=${d.focusId ?? 'none'})`);
420
- }
421
- }
422
- const toClose = decisions.filter((d) => d.verdict === 'close');
448
+ // A reaped session loses its process tree, and a live daemon-spawned process no
449
+ // team tracks is ended rather than skipped (session-process-reap.ts).
450
+ const reaped = await reapSessionHealthProcesses(activeSessions, decisions);
451
+ const toClose = reaped.filter((d) => d.verdict === 'close');
423
452
  for (const d of toClose)
424
453
  logHealthCloseDecision(d);
425
454
  if (toClose.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"listener.js","sourceRoot":"","sources":["../../src/focus/listener.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { type ReviewHeadApproval, type ReviewHeadApprovalTarget } from '../completion/review-approved-head-gate.js';
2
+ import { type UnchangedReviewedHead } from './unchanged-reviewed-head.js';
3
+ import { type CommitVerdict } from '../verify/commit-verdict-record.js';
4
+ /** What the gate decided for a queued review directive this poll. */
5
+ export type ApprovedHeadReviewSpawn = 'spawn' | 'dropped' | 'withheld';
6
+ /** Which spawn pass is asking: the pending-spawn pass or the ready-focus pass. */
7
+ export type ApprovedHeadSpawnPass = 'pending' | 'ready';
8
+ /** The delivery slice the release-owed read takes (structural). */
9
+ export interface ApprovedHeadDelivery {
10
+ executionStatus?: string | null;
11
+ gateState?: unknown;
12
+ }
13
+ /** Injectable seams; each defaults to the real implementation. */
14
+ export interface PendingReviewApprovedHeadDeps {
15
+ /** The focus head and its current approval. Throws when the approval cannot be read. */
16
+ readReviewHeadApproval?: (target: ReviewHeadApprovalTarget) => Promise<ReviewHeadApproval>;
17
+ /** The head when the review range is unchanged since the last completed review (focus/unchanged-reviewed-head.ts), else null. */
18
+ readUnchangedReviewedHead?: (target: ReviewHeadApprovalTarget) => Promise<UnchangedReviewedHead | null>;
19
+ /** The gate verdict recorded for a declined head (verify/commit-verdict-record.ts), or null. */
20
+ readCommitVerdict?: (productId: string, focusId: string, sha: string) => CommitVerdict | null;
21
+ /** Files the rework Bug on the focus's verify deliveries for a failed verdict (verify/verification-rework-issue.ts). */
22
+ fileReworkForFailedVerdict?: (focusId: string, verdict: CommitVerdict) => Promise<number>;
23
+ getFocusDeliveries?: (focusId: string) => Promise<readonly ApprovedHeadDelivery[]>;
24
+ clearReviewRequestedAt?: (focusId: string) => Promise<void>;
25
+ }
26
+ /** The focus row slice the gate reads. The ready-focus row carries no window. */
27
+ export interface ApprovedHeadFocus {
28
+ focus_id: string;
29
+ focus_name: string;
30
+ review_requested_at?: string | null;
31
+ }
32
+ /** Test seam: forget logged episodes. */
33
+ export declare function __resetPendingReviewApprovedHeadForTests(): void;
34
+ /**
35
+ * Decide whether a queued review directive may spawn (see the module header).
36
+ * Only a REVIEW-lineage directive is governed; anything else is 'spawn'. Also
37
+ * declined: a head whose review range is unchanged since the last completed review
38
+ * (focus/unchanged-reviewed-head.ts), with the same dropped / withheld handling.
39
+ */
40
+ export declare function gatePendingReviewAtApprovedHead(focus: ApprovedHeadFocus, target: ReviewHeadApprovalTarget, pass: ApprovedHeadSpawnPass, deps?: PendingReviewApprovedHeadDeps): Promise<ApprovedHeadReviewSpawn>;
41
+ //# sourceMappingURL=pending-review-approved-head.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-review-approved-head.d.ts","sourceRoot":"","sources":["../../src/focus/pending-review-approved-head.ts"],"names":[],"mappings":"AA8EA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC9B,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrG,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAM3F,qEAAqE;AACrE,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvE,kFAAkF;AAClF,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAAC;AAExD,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,kEAAkE;AAClE,MAAM,WAAW,6BAA6B;IAC5C,wFAAwF;IACxF,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3F,iIAAiI;IACjI,yBAAyB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;IACxG,gGAAgG;IAChG,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,aAAa,GAAG,IAAI,CAAC;IAC9F,wHAAwH;IACxH,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1F,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,oBAAoB,EAAE,CAAC,CAAC;IACnF,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,iFAAiF;AACjF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAUD,yCAAyC;AACzC,wBAAgB,wCAAwC,IAAI,IAAI,CAE/D;AAsFD;;;;;GAKG;AACH,wBAAsB,+BAA+B,CACnD,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,wBAAwB,EAChC,IAAI,EAAE,qBAAqB,EAC3B,IAAI,GAAE,6BAAkC,GACvC,OAAO,CAAC,uBAAuB,CAAC,CA6BlC"}
@@ -0,0 +1,198 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/focus/pending-review-approved-head.test.ts,
3
+ // packages/daemon/src/focus/unchanged-reviewed-head.test.ts,
4
+ // packages/daemon/src/integration/approved-head-gate-failure-respawn-regression.test.ts,
5
+ // packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
6
+ // packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
7
+ // packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts
8
+ // PINNED-BY-END
9
+ /**
10
+ * Spawn-side half of "review runs once per distinct focus head": a queued REVIEW
11
+ * directive is never spawned while the focus head is the commit its current
12
+ * approval already judged.
13
+ *
14
+ * completion/review-approved-head-gate.ts keeps checkAutoReview from OPENING a
15
+ * review window at an approved head. But a review can reach a spawn without a new
16
+ * window: the review exit deliberately leaves review_requested_at set on a held
17
+ * delivery, the stranded-review re-fire (directive/phase-sync.ts
18
+ * shouldRefireStrandedReview) re-queues the review directive while that window
19
+ * stays set, the review park (spawn/review-hold-park.ts) RELEASES a queued review
20
+ * the moment an operator hold resolves, and a restart re-fires the review stage
21
+ * for every focus with the window set. Each of those spawned a review of the
22
+ * unchanged commit that stamped another approval of it.
23
+ *
24
+ * So every review SPAWN entry reads this one gate, over the same head/approval
25
+ * read (readReviewHeadApproval + isHeadAlreadyApproved) the window gate reads:
26
+ * - the pending-spawn pass (focus/listener-spawn.ts processPendingSpawnFocuses),
27
+ * read right AFTER the review park -- so a resolved operator hold is still
28
+ * released there first (the respawn halt cleared DURABLY, the marker cleared),
29
+ * and only the spawn is declined. This one read covers the stranded re-fire,
30
+ * the hold-park release and the restart re-fire: each only QUEUES a directive
31
+ * this pass consumes;
32
+ * - the ready-focus pass (processReadyFocuses), whose spawnFocusTeam consumes a
33
+ * queued review directive as a review session.
34
+ *
35
+ * At an approved head the pending-spawn pass does one of two things:
36
+ * - 'dropped': the directive is dropped and a set review_requested_at is cleared
37
+ * through the ordinary clearReviewRequestedAt write, so the stranded re-fire
38
+ * has nothing to re-fire and the loop ends. A failed clear is logged; the
39
+ * re-fire re-queues next poll and this gate retries the clear, spawning
40
+ * nothing either way.
41
+ * - 'withheld': nothing spawns, but the directive and the window are KEPT while
42
+ * a verify delivery still carries a hold marker whose release runs through
43
+ * them -- an operator-hold marker (the park releases it only for a queued
44
+ * review directive) or a commit-verdict-hold marker (its release replays the
45
+ * held review exit, which routes toward done only through an open window).
46
+ * Clearing them first would leave that marker standing forever, and a marker
47
+ * keeps the delivery out of standing-approval convergence. Once the marker is
48
+ * released, the next poll drops.
49
+ * The ready-focus pass only drops the directive: the focus has coding work, the
50
+ * team it spawns does that work, and the cascade's stale-window clear owns the
51
+ * window of a focus back in active work.
52
+ *
53
+ * Convergence of the released delivery is NOT this gate's job: a verify delivery
54
+ * that passed at the approved head and was in the approving review's census
55
+ * reaches done through completion/standing-approval-convergence.ts in the cascade.
56
+ *
57
+ * BOUNDED, VISIBLE NON-CONVERGENCE: a verify delivery at the approved head that the
58
+ * standing approval cannot close (the approving review never saw it in verify at
59
+ * its current iteration, or a hold marker only a review exit clears -- an
60
+ * external hold, undisposed shortfall proposals -- still stands) is NOT reviewed
61
+ * again at that head. It stays in verify, with this gate's log line and the
62
+ * convergence pass's hold reason naming why, until a new commit on the focus (or a
63
+ * newer non-approving review of the head, which revokes the approval) makes review
64
+ * eligible again. That is AC1 taken literally: an unchanged approved head draws no
65
+ * review.
66
+ *
67
+ * FAILS OPEN: an unresolvable head, an unreadable approval, or no approval spawns
68
+ * the review as before. A missed decline costs one review pass; a false decline
69
+ * would strand a delivery that needs a verdict. A deliveries read failure while
70
+ * deciding dropped-vs-withheld reads as a release still owed ('withheld'): keeping
71
+ * the directive costs a poll, dropping it could strand a marker.
72
+ *
73
+ * @module focus/pending-review-approved-head
74
+ */
75
+ import { getPendingSpawnDirective, clearPendingSpawnDirective } from '../directive/directive-queue.js';
76
+ import { clearReviewRequestedAt, getFocusDeliveries } from '../queries/focuses.js';
77
+ import { isHeadAlreadyApproved, readReviewHeadApproval, } from '../completion/review-approved-head-gate.js';
78
+ import { hasOperatorHoldMarker } from '../delivery/operator-hold.js';
79
+ import { hasCommitVerdictHoldMarker } from '../delivery/commit-verdict-hold.js';
80
+ import { readUnchangedReviewedHead } from './unchanged-reviewed-head.js';
81
+ import { readCommitVerdict } from '../verify/commit-verdict-record.js';
82
+ import { fileReworkForFailedVerdict } from '../verify/verification-rework-issue.js';
83
+ import { createLogger } from '../shell/log.js';
84
+ const log = createLogger({ module: 'listener' });
85
+ // Daemon-local literal (not DELIVERY_STATUS from @telora/daemon-core): this module
86
+ // is pulled into listener tests that use the module-mock loader, under which a
87
+ // bare @telora/* VALUE import mis-resolves (see spawn/review-hold-park.ts).
88
+ const VERIFY_STATUS = 'verify';
89
+ /** The decision last logged per focus (one line per episode, not one per poll). */
90
+ const lastLogged = new Map();
91
+ /** Test seam: forget logged episodes. */
92
+ export function __resetPendingReviewApprovedHeadForTests() {
93
+ lastLogged.clear();
94
+ }
95
+ function logOnce(focus, key, message) {
96
+ if (lastLogged.get(focus.focus_id) === key)
97
+ return;
98
+ lastLogged.set(focus.focus_id, key);
99
+ log.info(message);
100
+ }
101
+ /** Whether a verify delivery still carries a marker whose release runs through the queued review / open window. */
102
+ async function releaseStillOwed(focus, deps) {
103
+ try {
104
+ const deliveries = await (deps.getFocusDeliveries ?? getFocusDeliveries)(focus.focus_id);
105
+ return deliveries.some((d) => d.executionStatus === VERIFY_STATUS &&
106
+ (hasOperatorHoldMarker(d.gateState) || hasCommitVerdictHoldMarker(d.gateState)));
107
+ }
108
+ catch (err) {
109
+ log.warn(`[listener] "${focus.focus_name}": deliveries unreadable at the approved head -- keeping the queued review: ${err.message}`);
110
+ return true;
111
+ }
112
+ }
113
+ /** The approved sha when the head is known to be the commit its current approval judged, else null (fail open). */
114
+ async function approvedHeadSha(focus, target, deps) {
115
+ try {
116
+ const read = await (deps.readReviewHeadApproval ?? readReviewHeadApproval)(target);
117
+ return isHeadAlreadyApproved(read) ? read.approvedSha : null;
118
+ }
119
+ catch (err) {
120
+ log.warn(`[listener] "${focus.focus_name}": approved review head unreadable -- the queued review spawns as before: ${err.message}`);
121
+ return null;
122
+ }
123
+ }
124
+ /** The head a queued review must not re-judge, or null (fail open). */
125
+ async function declinedHead(focus, target, deps) {
126
+ const approved = await approvedHeadSha(focus, target, deps);
127
+ if (approved !== null)
128
+ return { sha: approved, why: 'is the commit its current approval already judged' };
129
+ try {
130
+ const unchanged = await (deps.readUnchangedReviewedHead ?? readUnchangedReviewedHead)(target);
131
+ return unchanged === null ? null : {
132
+ sha: unchanged.sha,
133
+ why: `was already reviewed at ${unchanged.reviewedAt} with the same verify deliveries and the same ${unchanged.verdict} gate verdict ` +
134
+ '(an unchanged range draws no review; a new commit or a new verdict does)',
135
+ };
136
+ }
137
+ catch (err) {
138
+ log.warn(`[listener] "${focus.focus_name}": last reviewed range unreadable -- the queued review spawns as before: ${err.message}`);
139
+ return null;
140
+ }
141
+ }
142
+ /**
143
+ * A declined review does not leave a FAILED gate verdict at that head unanswered:
144
+ * no review will run there, so the failure is filed as rework on the focus's
145
+ * verify deliveries (deduped per commit, skipped beside open work) and a coding
146
+ * pass fixes it. Best-effort; a verdict read that throws files nothing.
147
+ */
148
+ async function reworkFailedVerdictAtDeclinedHead(focus, target, sha, deps) {
149
+ try {
150
+ const verdict = (deps.readCommitVerdict ?? readCommitVerdict)(target.productId, target.focusId, sha);
151
+ if (verdict?.outcome !== 'failed')
152
+ return;
153
+ const filed = await (deps.fileReworkForFailedVerdict ?? ((id, v) => fileReworkForFailedVerdict(id, v)))(focus.focus_id, verdict);
154
+ if (filed > 0) {
155
+ log.info(`[listener] "${focus.focus_name}": no review runs at ${sha.slice(0, 12)}, where the gate FAILED -- filed ${filed} rework Bug(s) so a coding pass fixes it`);
156
+ }
157
+ }
158
+ catch (err) {
159
+ log.warn(`[listener] "${focus.focus_name}": could not route the failed verdict at ${sha.slice(0, 12)} to rework: ${err.message}`);
160
+ }
161
+ }
162
+ /**
163
+ * Decide whether a queued review directive may spawn (see the module header).
164
+ * Only a REVIEW-lineage directive is governed; anything else is 'spawn'. Also
165
+ * declined: a head whose review range is unchanged since the last completed review
166
+ * (focus/unchanged-reviewed-head.ts), with the same dropped / withheld handling.
167
+ */
168
+ export async function gatePendingReviewAtApprovedHead(focus, target, pass, deps = {}) {
169
+ if (getPendingSpawnDirective(focus.focus_id)?.lineage !== 'review')
170
+ return 'spawn';
171
+ const declined = await declinedHead(focus, target, deps);
172
+ if (declined === null) {
173
+ lastLogged.delete(focus.focus_id);
174
+ return 'spawn';
175
+ }
176
+ const { sha, why } = declined;
177
+ const at = sha.slice(0, 12);
178
+ await reworkFailedVerdictAtDeclinedHead(focus, target, sha, deps);
179
+ if (pass === 'pending' && await releaseStillOwed(focus, deps)) {
180
+ logOnce(focus, `withheld:${sha}`, `[listener] Not spawning the queued review for "${focus.focus_name}": its head ${at} ${why}. The directive and ` +
181
+ `review window are kept only while a verify delivery's hold marker still awaits its release; no review runs at this head.`);
182
+ return 'withheld';
183
+ }
184
+ clearPendingSpawnDirective(focus.focus_id);
185
+ if (pass === 'pending' && focus.review_requested_at) {
186
+ try {
187
+ await (deps.clearReviewRequestedAt ?? clearReviewRequestedAt)(focus.focus_id);
188
+ }
189
+ catch (err) {
190
+ log.warn(`[listener] "${focus.focus_name}": could not clear review_requested_at at the approved head ${at} (retried next poll): ${err.message}`);
191
+ }
192
+ }
193
+ logOnce(focus, `dropped:${sha}`, `[listener] Dropped the queued review for "${focus.focus_name}": its head ${at} ${why} -- review runs once per ` +
194
+ `distinct focus head` +
195
+ (pass === 'pending' ? '; review window closed. A delivery the standing approval cannot close stays in verify until a new commit.' : '.'));
196
+ return 'dropped';
197
+ }
198
+ //# sourceMappingURL=pending-review-approved-head.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-review-approved-head.js","sourceRoot":"","sources":["../../src/focus/pending-review-approved-head.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import type { SpawnFocusTeamParams } from '../spawn/spawn-decision.js';
18
18
  import type { RespawnGuardDeps } from './focus-respawn-guard.js';
19
19
  import type { PendingSpawnReviewNextStepDeps } from './pending-spawn-review-next-step.js';
20
20
  import type { ReviewHoldParkDeps } from '../spawn/review-hold-park.js';
21
+ import type { PendingReviewApprovedHeadDeps } from './pending-review-approved-head.js';
21
22
  import { resolveFocusVerifyHoldFacts, type FocusHoldWorkDeps } from './team-actionable-work.js';
22
23
  import type { ReviewCycleCapHoldDeps } from './review-cycle-cap-hold.js';
23
24
  import type { EscalationSpoolDrainDeps } from '../queries/escalation-spool.js';
@@ -43,6 +44,8 @@ export interface ReadyFocusPassDeps {
43
44
  focus_name: string;
44
45
  product_id: string | null;
45
46
  }) => Promise<boolean>;
47
+ /** Reads + window clear of the approved-head review gate (a queued review directive at an approved head is dropped). */
48
+ reviewApprovedHead?: PendingReviewApprovedHeadDeps;
46
49
  }
47
50
  /** The production wiring for the ready-focus pass. */
48
51
  export declare const READY_FOCUS_PASS_DEPS: ReadyFocusPassDeps;
@@ -57,6 +60,8 @@ export interface PendingSpawnPassDeps {
57
60
  reviewNextStep?: PendingSpawnReviewNextStepDeps;
58
61
  /** Reads of the operator-hold review park (pendingReviewParkedOnOperatorHold). */
59
62
  reviewHoldPark?: ReviewHoldParkDeps;
63
+ /** Reads + window clear of the approved-head review gate (pendingReviewDeclinedAtApprovedHead). */
64
+ reviewApprovedHead?: PendingReviewApprovedHeadDeps;
60
65
  /** Hold + work reads of the verify-hold deferral (pendingSpawnDeferredByVerifyHold). */
61
66
  verifyHold?: FocusHoldWorkDeps;
62
67
  /** Observation + cap reads of the review-cycle cap hold (resolveReviewCycleCapHold). */
@@ -1 +1 @@
1
- {"version":3,"file":"pending-spawn-pass-deps.d.ts","sourceRoot":"","sources":["../../src/focus/pending-spawn-pass-deps.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoB,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gEAAgE;IAChE,2BAA2B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;IACjG,sEAAsE;IACtE,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CACpB,cAAc,EAAE,MAAM,KACnB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACvG;AAED,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC5F,0FAA0F;IAC1F,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,2EAA2E;IAC3E,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,mGAAmG;IACnG,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD,kFAAkF;IAClF,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,wFAAwF;IACxF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,uFAAuF;IACvF,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,EAAE,oBAGrC,CAAC"}
1
+ {"version":3,"file":"pending-spawn-pass-deps.d.ts","sourceRoot":"","sources":["../../src/focus/pending-spawn-pass-deps.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAoB,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEvG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,eAAe,EAAE,OAAO,eAAe,CAAC;IACxC,gEAAgE;IAChE,2BAA2B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;IACjG,sEAAsE;IACtE,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CACpB,cAAc,EAAE,MAAM,KACnB,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtG,wHAAwH;IACxH,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;CACpD;AAED,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,EAAE,kBAInC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC5F,0FAA0F;IAC1F,cAAc,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,2EAA2E;IAC3E,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,mGAAmG;IACnG,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD,kFAAkF;IAClF,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,mGAAmG;IACnG,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD,wFAAwF;IACxF,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,wFAAwF;IACxF,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,uFAAuF;IACvF,eAAe,CAAC,EAAE,wBAAwB,CAAC;CAC5C;AAED,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,EAAE,oBAGrC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
2
  // Pinned by: packages/daemon/src/completion/review-window-idle-coding-lead-regression.test.ts,
3
- // packages/daemon/src/focus/awaiting-slot.test.ts
3
+ // packages/daemon/src/focus/awaiting-slot.test.ts,
4
+ // packages/daemon/src/focus/pending-review-approved-head.test.ts
4
5
  // PINNED-BY-END
5
6
  /**
6
7
  * Injectable seam for the pending-spawn pass (focus/listener-spawn.ts
@@ -1 +1 @@
1
- {"version":3,"file":"pending-spawn-pass-deps.js","sourceRoot":"","sources":["../../src/focus/pending-spawn-pass-deps.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+FAA+F;AAC/F,oDAAoD;AACpD,gBAAgB;AAEhB;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAuB,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,2BAA2B,EAA0B,MAAM,2BAA2B,CAAC;AA0BhG,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,eAAe;IACf,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC;IAC9E,cAAc;CACf,CAAC;AAqBF,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,gBAAgB;IAChB,cAAc;CACf,CAAC"}
1
+ {"version":3,"file":"pending-spawn-pass-deps.js","sourceRoot":"","sources":["../../src/focus/pending-spawn-pass-deps.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+FAA+F;AAC/F,qDAAqD;AACrD,mEAAmE;AACnE,gBAAgB;AAEhB;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAuB,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD,OAAO,EAAE,2BAA2B,EAA0B,MAAM,2BAA2B,CAAC;AA4BhG,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAuB;IACvD,eAAe;IACf,2BAA2B,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC;IAC9E,cAAc;CACf,CAAC;AAuBF,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAyB;IAC3D,gBAAgB;IAChB,cAAc;CACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pending-spawn-review-next-step.d.ts","sourceRoot":"","sources":["../../src/focus/pending-spawn-review-next-step.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAA+C,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKrH,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,mCAAmC,CAAC;AAO3C,wGAAwG;AACxG,eAAO,MAAM,0BAA0B,QAAc,CAAC;AAEtD,+FAA+F;AAC/F,eAAO,MAAM,uCAAuC,QAAc,CAAC;AAEnE,kHAAkH;AAClH,eAAO,MAAM,sCAAsC,QAAc,CAAC;AAElE,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,yCAAyC,CAAC;AAEpF,gEAAgE;AAChE,eAAO,MAAM,iCAAiC,iDAAiD,CAAC;AAEhG;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;CACd;AAED,gFAAgF;AAChF,MAAM,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5F,0EAA0E;AAC1E,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IACrF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;IAC9E,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4HAA4H;IAC5H,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,yFAAyF;AACzF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAwCD,8CAA8C;AAC9C,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AA+BD;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,wBAAwB,GAAG,sBAAsB,CAkC1G;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,wBAAwB,EAChC,IAAI,GAAE;IAAE,gBAAgB,EAAE,wBAAwB,CAAA;CAAkD,GACnG,OAAO,CAAC,IAAI,CAAC,CAEf;AAuKD;;;;;;;;GAQG;AACH,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,+BAA+B,EACtC,IAAI,GAAE,8BAAmC,GACxC,OAAO,CAAC,OAAO,CAAC,CAalB"}
1
+ {"version":3,"file":"pending-spawn-review-next-step.d.ts","sourceRoot":"","sources":["../../src/focus/pending-spawn-review-next-step.ts"],"names":[],"mappings":"AAiFA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAA+C,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKrH,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACzB,MAAM,mCAAmC,CAAC;AAO3C,wGAAwG;AACxG,eAAO,MAAM,0BAA0B,QAAc,CAAC;AAEtD,+FAA+F;AAC/F,eAAO,MAAM,uCAAuC,QAAc,CAAC;AAEnE,kHAAkH;AAClH,eAAO,MAAM,sCAAsC,QAAc,CAAC;AAElE,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,yCAAyC,CAAC;AAEpF,gEAAgE;AAChE,eAAO,MAAM,iCAAiC,iDAAiD,CAAC;AAEhG;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;IAC9B,KAAK,EAAE,KAAK,CAAC;CACd;AAED,gFAAgF;AAChF,MAAM,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5F,0EAA0E;AAC1E,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC,CAAC;IACrF,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,mBAAmB,EAAE,CAAC,CAAC;IAC9E,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAC5C,uGAAuG;IACvG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4HAA4H;IAC5H,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,yFAAyF;AACzF,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAwCD,8CAA8C;AAC9C,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AAgCD;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,wBAAwB,GAAG,sBAAsB,CAkC1G;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,wBAAwB,EAChC,IAAI,GAAE;IAAE,gBAAgB,EAAE,wBAAwB,CAAA;CAAkD,GACnG,OAAO,CAAC,IAAI,CAAC,CAEf;AAuKD;;;;;;;;GAQG;AACH,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,+BAA+B,EACtC,IAAI,GAAE,8BAAmC,GACxC,OAAO,CAAC,OAAO,CAAC,CAgBlB"}