@telora/daemon 0.23.48 → 0.23.56

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 (370) hide show
  1. package/build-info.json +2 -2
  2. package/dist/completion/review-exit/review-census-record.d.ts.map +1 -1
  3. package/dist/completion/review-exit/review-census-record.js +4 -0
  4. package/dist/completion/review-exit/review-census-record.js.map +1 -1
  5. package/dist/completion/review-exit/review-exit-deps.js +1 -1
  6. package/dist/completion/review-exit/review-exit-phase.js +1 -1
  7. package/dist/completion/state-cascade/failed-verdict-stranded-filing.d.ts +35 -0
  8. package/dist/completion/state-cascade/failed-verdict-stranded-filing.d.ts.map +1 -0
  9. package/dist/completion/state-cascade/failed-verdict-stranded-filing.js +93 -0
  10. package/dist/completion/state-cascade/failed-verdict-stranded-filing.js.map +1 -0
  11. package/dist/completion/state-cascade/review-approved-head-gate.d.ts.map +1 -1
  12. package/dist/completion/state-cascade/review-approved-head-gate.js +3 -0
  13. package/dist/completion/state-cascade/review-approved-head-gate.js.map +1 -1
  14. package/dist/completion/state-cascade/review-next-step.d.ts +19 -6
  15. package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
  16. package/dist/completion/state-cascade/review-next-step.js +6 -2
  17. package/dist/completion/state-cascade/review-next-step.js.map +1 -1
  18. package/dist/completion/state-cascade/review-request-gate.d.ts +5 -0
  19. package/dist/completion/state-cascade/review-request-gate.d.ts.map +1 -1
  20. package/dist/completion/state-cascade/review-request-gate.js +7 -1
  21. package/dist/completion/state-cascade/review-request-gate.js.map +1 -1
  22. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts +137 -0
  23. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts.map +1 -0
  24. package/dist/completion/state-cascade/review-verify-judgment-gate.js +98 -0
  25. package/dist/completion/state-cascade/review-verify-judgment-gate.js.map +1 -0
  26. package/dist/completion/state-cascade/standing-approval-convergence.d.ts +18 -8
  27. package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
  28. package/dist/completion/state-cascade/standing-approval-convergence.js +81 -16
  29. package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
  30. package/dist/completion/state-cascade/standing-approval-failed-verdict.d.ts +107 -0
  31. package/dist/completion/state-cascade/standing-approval-failed-verdict.d.ts.map +1 -0
  32. package/dist/completion/state-cascade/standing-approval-failed-verdict.js +121 -0
  33. package/dist/completion/state-cascade/standing-approval-failed-verdict.js.map +1 -0
  34. package/dist/completion/state-cascade/standing-approval-stranded.d.ts +29 -3
  35. package/dist/completion/state-cascade/standing-approval-stranded.d.ts.map +1 -1
  36. package/dist/completion/state-cascade/standing-approval-stranded.js +121 -7
  37. package/dist/completion/state-cascade/standing-approval-stranded.js.map +1 -1
  38. package/dist/completion/state-cascade/state-cascade.d.ts +14 -0
  39. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  40. package/dist/completion/state-cascade/state-cascade.js +15 -6
  41. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  42. package/dist/completion/team-exit/status-advance-phase.d.ts +7 -0
  43. package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
  44. package/dist/completion/team-exit/status-advance-phase.js +26 -17
  45. package/dist/completion/team-exit/status-advance-phase.js.map +1 -1
  46. package/dist/composition/advance-precheck-context.d.ts.map +1 -1
  47. package/dist/composition/advance-precheck-context.js +3 -0
  48. package/dist/composition/advance-precheck-context.js.map +1 -1
  49. package/dist/composition/execution-merge-context.d.ts.map +1 -1
  50. package/dist/composition/execution-merge-context.js +1 -0
  51. package/dist/composition/execution-merge-context.js.map +1 -1
  52. package/dist/composition/execution-migrations-context.d.ts.map +1 -1
  53. package/dist/composition/execution-migrations-context.js +1 -20
  54. package/dist/composition/execution-migrations-context.js.map +1 -1
  55. package/dist/composition/runtime-delivery-advance-context.d.ts +12 -3
  56. package/dist/composition/runtime-delivery-advance-context.d.ts.map +1 -1
  57. package/dist/composition/runtime-delivery-advance-context.js +36 -4
  58. package/dist/composition/runtime-delivery-advance-context.js.map +1 -1
  59. package/dist/composition/standing-approval-context.d.ts.map +1 -1
  60. package/dist/composition/standing-approval-context.js +4 -0
  61. package/dist/composition/standing-approval-context.js.map +1 -1
  62. package/dist/composition/state-cascade-context.d.ts +9 -0
  63. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  64. package/dist/composition/state-cascade-context.js +21 -1
  65. package/dist/composition/state-cascade-context.js.map +1 -1
  66. package/dist/composition/tower-pass-context.d.ts.map +1 -1
  67. package/dist/composition/tower-pass-context.js +2 -1
  68. package/dist/composition/tower-pass-context.js.map +1 -1
  69. package/dist/composition/verification-context.js +1 -1
  70. package/dist/composition/verify-feedback-context.d.ts +5 -1
  71. package/dist/composition/verify-feedback-context.d.ts.map +1 -1
  72. package/dist/composition/verify-feedback-context.js +8 -3
  73. package/dist/composition/verify-feedback-context.js.map +1 -1
  74. package/dist/config/live-daemon-config.js +1 -1
  75. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  76. package/dist/delivery/delivery-lifecycle.js +3 -0
  77. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  78. package/dist/delivery/operator-hold.d.ts.map +1 -1
  79. package/dist/delivery/operator-hold.js +2 -0
  80. package/dist/delivery/operator-hold.js.map +1 -1
  81. package/dist/delivery/paused-revival.d.ts.map +1 -1
  82. package/dist/delivery/paused-revival.js +2 -1
  83. package/dist/delivery/paused-revival.js.map +1 -1
  84. package/dist/delivery/recorded-concerns.d.ts +5 -2
  85. package/dist/delivery/recorded-concerns.d.ts.map +1 -1
  86. package/dist/delivery/recorded-concerns.js +8 -4
  87. package/dist/delivery/recorded-concerns.js.map +1 -1
  88. package/dist/directive/directive-queue.js +1 -1
  89. package/dist/focus/focus-poller-auto-advance.d.ts +15 -0
  90. package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
  91. package/dist/focus/focus-poller-auto-advance.js +23 -15
  92. package/dist/focus/focus-poller-auto-advance.js.map +1 -1
  93. package/dist/focus/focus-poller-spawn.js +1 -1
  94. package/dist/focus/focus-poller-state.js +1 -1
  95. package/dist/focus/pending-review-approved-head.d.ts.map +1 -1
  96. package/dist/focus/pending-review-approved-head.js +7 -3
  97. package/dist/focus/pending-review-approved-head.js.map +1 -1
  98. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  99. package/dist/focus/pending-spawn-review-next-step.js +11 -9
  100. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  101. package/dist/focus/ready-focus-team-work.d.ts.map +1 -1
  102. package/dist/focus/ready-focus-team-work.js +2 -1
  103. package/dist/focus/ready-focus-team-work.js.map +1 -1
  104. package/dist/git/focus-branch-containment.js +2 -2
  105. package/dist/git/focus-branch-containment.js.map +1 -1
  106. package/dist/git/index.d.ts.map +1 -1
  107. package/dist/git/index.js +1 -0
  108. package/dist/git/index.js.map +1 -1
  109. package/dist/merge/approval-gate-state.d.ts.map +1 -1
  110. package/dist/merge/approval-gate-state.js +1 -0
  111. package/dist/merge/approval-gate-state.js.map +1 -1
  112. package/dist/merge/completion-merge-driver.d.ts.map +1 -1
  113. package/dist/merge/completion-merge-driver.js +1 -0
  114. package/dist/merge/completion-merge-driver.js.map +1 -1
  115. package/dist/merge/completion-merge-gate.d.ts.map +1 -1
  116. package/dist/merge/completion-merge-gate.js +1 -0
  117. package/dist/merge/completion-merge-gate.js.map +1 -1
  118. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  119. package/dist/merge/merge-back-loop.js +1 -0
  120. package/dist/merge/merge-back-loop.js.map +1 -1
  121. package/dist/prd/index.d.ts.map +1 -1
  122. package/dist/prd/index.js +2 -1
  123. package/dist/prd/index.js.map +1 -1
  124. package/dist/prompt-sections/execution-sections.d.ts +5 -0
  125. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  126. package/dist/prompt-sections/execution-sections.js +12 -2
  127. package/dist/prompt-sections/execution-sections.js.map +1 -1
  128. package/dist/prompt-sections/gate-verdict-section.d.ts.map +1 -1
  129. package/dist/prompt-sections/gate-verdict-section.js +3 -1
  130. package/dist/prompt-sections/gate-verdict-section.js.map +1 -1
  131. package/dist/prompt-sections/persona-sections.d.ts +10 -0
  132. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  133. package/dist/prompt-sections/persona-sections.js +21 -6
  134. package/dist/prompt-sections/persona-sections.js.map +1 -1
  135. package/dist/prompt-sections/prompt-listing.d.ts +33 -0
  136. package/dist/prompt-sections/prompt-listing.d.ts.map +1 -1
  137. package/dist/prompt-sections/prompt-listing.js +67 -13
  138. package/dist/prompt-sections/prompt-listing.js.map +1 -1
  139. package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -1
  140. package/dist/prompt-sections/routing-decider-sections.js +6 -2
  141. package/dist/prompt-sections/routing-decider-sections.js.map +1 -1
  142. package/dist/prompt-sections/shared.js +1 -1
  143. package/dist/prompt-sections/shortfall-gap-lines.d.ts +32 -0
  144. package/dist/prompt-sections/shortfall-gap-lines.d.ts.map +1 -0
  145. package/dist/prompt-sections/shortfall-gap-lines.js +58 -0
  146. package/dist/prompt-sections/shortfall-gap-lines.js.map +1 -0
  147. package/dist/prompt-sections/shortfall-park-section.d.ts +7 -1
  148. package/dist/prompt-sections/shortfall-park-section.d.ts.map +1 -1
  149. package/dist/prompt-sections/shortfall-park-section.js +27 -0
  150. package/dist/prompt-sections/shortfall-park-section.js.map +1 -1
  151. package/dist/queries/api-client/shared.js +1 -1
  152. package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts +43 -16
  153. package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts.map +1 -1
  154. package/dist/queries/delivery-gate-state/delivery-gate-state.js +43 -11
  155. package/dist/queries/delivery-gate-state/delivery-gate-state.js.map +1 -1
  156. package/dist/queries/delivery-gate-state/shortfall-judgment-record.d.ts +56 -0
  157. package/dist/queries/delivery-gate-state/shortfall-judgment-record.d.ts.map +1 -0
  158. package/dist/queries/delivery-gate-state/shortfall-judgment-record.js +123 -0
  159. package/dist/queries/delivery-gate-state/shortfall-judgment-record.js.map +1 -0
  160. package/dist/queries/delivery-gate-state/verify-own-holds.d.ts.map +1 -1
  161. package/dist/queries/delivery-gate-state/verify-own-holds.js +2 -1
  162. package/dist/queries/delivery-gate-state/verify-own-holds.js.map +1 -1
  163. package/dist/queries/escalations/cause-key.d.ts +9 -1
  164. package/dist/queries/escalations/cause-key.d.ts.map +1 -1
  165. package/dist/queries/escalations/cause-key.js +16 -2
  166. package/dist/queries/escalations/cause-key.js.map +1 -1
  167. package/dist/queries/escalations/filing-observation.d.ts.map +1 -1
  168. package/dist/queries/escalations/filing-observation.js +3 -0
  169. package/dist/queries/escalations/filing-observation.js.map +1 -1
  170. package/dist/queries/focus-review/focus-review-approval.d.ts.map +1 -1
  171. package/dist/queries/focus-review/focus-review-approval.js +3 -0
  172. package/dist/queries/focus-review/focus-review-approval.js.map +1 -1
  173. package/dist/queries/prd/prd.d.ts.map +1 -1
  174. package/dist/queries/prd/prd.js +2 -1
  175. package/dist/queries/prd/prd.js.map +1 -1
  176. package/dist/queries/verification/shortfall-rulings.d.ts.map +1 -1
  177. package/dist/queries/verification/shortfall-rulings.js +3 -1
  178. package/dist/queries/verification/shortfall-rulings.js.map +1 -1
  179. package/dist/queries/verification/verification.js +1 -1
  180. package/dist/session/session-lineage.d.ts.map +1 -1
  181. package/dist/session/session-lineage.js +1 -0
  182. package/dist/session/session-lineage.js.map +1 -1
  183. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  184. package/dist/spawn/prompt-assembly.js +13 -1
  185. package/dist/spawn/prompt-assembly.js.map +1 -1
  186. package/dist/spawn/review-hold-park.d.ts.map +1 -1
  187. package/dist/spawn/review-hold-park.js +1 -0
  188. package/dist/spawn/review-hold-park.js.map +1 -1
  189. package/dist/supervision/agent-resolvable-promotion.d.ts +3 -2
  190. package/dist/supervision/agent-resolvable-promotion.d.ts.map +1 -1
  191. package/dist/supervision/agent-resolvable-promotion.js +3 -2
  192. package/dist/supervision/agent-resolvable-promotion.js.map +1 -1
  193. package/dist/supervision/escalation-clearing.d.ts +14 -1
  194. package/dist/supervision/escalation-clearing.d.ts.map +1 -1
  195. package/dist/supervision/escalation-clearing.js +28 -1
  196. package/dist/supervision/escalation-clearing.js.map +1 -1
  197. package/dist/supervision/escalation-suppression.js +1 -1
  198. package/dist/supervision/focus-delivery-aggregate-phase.d.ts.map +1 -1
  199. package/dist/supervision/focus-delivery-aggregate-phase.js +2 -0
  200. package/dist/supervision/focus-delivery-aggregate-phase.js.map +1 -1
  201. package/dist/supervision/holds.d.ts.map +1 -1
  202. package/dist/supervision/holds.js +1 -0
  203. package/dist/supervision/holds.js.map +1 -1
  204. package/dist/supervision/null-role-spawn.d.ts.map +1 -1
  205. package/dist/supervision/null-role-spawn.js +1 -0
  206. package/dist/supervision/null-role-spawn.js.map +1 -1
  207. package/dist/supervision/stop-registry.d.ts +1 -0
  208. package/dist/supervision/stop-registry.d.ts.map +1 -1
  209. package/dist/supervision/stop-rows-delivery.d.ts +8 -0
  210. package/dist/supervision/stop-rows-delivery.d.ts.map +1 -1
  211. package/dist/supervision/stop-rows-delivery.js +31 -4
  212. package/dist/supervision/stop-rows-delivery.js.map +1 -1
  213. package/dist/supervision/team-work.d.ts.map +1 -1
  214. package/dist/supervision/team-work.js +1 -0
  215. package/dist/supervision/team-work.js.map +1 -1
  216. package/dist/supervision/verify-gate-stall.d.ts.map +1 -1
  217. package/dist/supervision/verify-gate-stall.js +1 -0
  218. package/dist/supervision/verify-gate-stall.js.map +1 -1
  219. package/dist/testing/fixtures/api-client.js +1 -1
  220. package/dist/testing/fixtures/completion-judge-stubs.d.ts.map +1 -1
  221. package/dist/testing/fixtures/completion-judge-stubs.js +1 -0
  222. package/dist/testing/fixtures/completion-judge-stubs.js.map +1 -1
  223. package/dist/testing/fixtures/escalation-store.d.ts +35 -0
  224. package/dist/testing/fixtures/escalation-store.d.ts.map +1 -0
  225. package/dist/testing/fixtures/escalation-store.js +86 -0
  226. package/dist/testing/fixtures/escalation-store.js.map +1 -0
  227. package/dist/testing/fixtures/index.js +1 -1
  228. package/dist/testing/fixtures/merge-log-capture.d.ts.map +1 -1
  229. package/dist/testing/fixtures/merge-log-capture.js +1 -0
  230. package/dist/testing/fixtures/merge-log-capture.js.map +1 -1
  231. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  232. package/dist/testing/fixtures/pending-spawn-world.js +1 -0
  233. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  234. package/dist/testing/fixtures/recording-api-client.js +1 -1
  235. package/dist/testing/fixtures/review-exit-deps.js +1 -1
  236. package/dist/testing/fixtures/shortfall-rework-hold-deps.d.ts +22 -0
  237. package/dist/testing/fixtures/shortfall-rework-hold-deps.d.ts.map +1 -0
  238. package/dist/testing/fixtures/shortfall-rework-hold-deps.js +44 -0
  239. package/dist/testing/fixtures/shortfall-rework-hold-deps.js.map +1 -0
  240. package/dist/testing/fixtures/verification-feedback-deps.d.ts +7 -2
  241. package/dist/testing/fixtures/verification-feedback-deps.d.ts.map +1 -1
  242. package/dist/testing/fixtures/verification-feedback-deps.js +15 -19
  243. package/dist/testing/fixtures/verification-feedback-deps.js.map +1 -1
  244. package/dist/types/index.js +1 -1
  245. package/dist/types/issue-description-budget.d.ts.map +1 -1
  246. package/dist/types/issue-description-budget.js +1 -0
  247. package/dist/types/issue-description-budget.js.map +1 -1
  248. package/dist/types/issue-status.d.ts +17 -0
  249. package/dist/types/issue-status.d.ts.map +1 -1
  250. package/dist/types/issue-status.js +23 -1
  251. package/dist/types/issue-status.js.map +1 -1
  252. package/dist/verify/effect-reconciliation/pending-injection-stamp.d.ts.map +1 -1
  253. package/dist/verify/effect-reconciliation/pending-injection-stamp.js +1 -0
  254. package/dist/verify/effect-reconciliation/pending-injection-stamp.js.map +1 -1
  255. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts +18 -3
  256. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts.map +1 -1
  257. package/dist/verify/effect-reconciliation/verify-reconciliation.js +26 -6
  258. package/dist/verify/effect-reconciliation/verify-reconciliation.js.map +1 -1
  259. package/dist/verify/effect-reconciliation/verify-restatement.d.ts +8 -0
  260. package/dist/verify/effect-reconciliation/verify-restatement.d.ts.map +1 -1
  261. package/dist/verify/effect-reconciliation/verify-restatement.js +5 -2
  262. package/dist/verify/effect-reconciliation/verify-restatement.js.map +1 -1
  263. package/dist/verify/engine/verification-commit-sharing.d.ts +6 -0
  264. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  265. package/dist/verify/engine/verification-commit-sharing.js +34 -1
  266. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  267. package/dist/verify/engine/verification-deps.js +1 -1
  268. package/dist/verify/engine/verification-engine.d.ts.map +1 -1
  269. package/dist/verify/engine/verification-engine.js +12 -3
  270. package/dist/verify/engine/verification-engine.js.map +1 -1
  271. package/dist/verify/gate-config/verification-config.js +1 -1
  272. package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
  273. package/dist/verify/gate-verdicts/explicit-gate-outcome.d.ts.map +1 -1
  274. package/dist/verify/gate-verdicts/explicit-gate-outcome.js +2 -0
  275. package/dist/verify/gate-verdicts/explicit-gate-outcome.js.map +1 -1
  276. package/dist/verify/gate-verdicts/gate-run-registry.js +1 -1
  277. package/dist/verify/gate-verdicts/own-gate-verdict.d.ts +10 -0
  278. package/dist/verify/gate-verdicts/own-gate-verdict.d.ts.map +1 -1
  279. package/dist/verify/gate-verdicts/own-gate-verdict.js +3 -2
  280. package/dist/verify/gate-verdicts/own-gate-verdict.js.map +1 -1
  281. package/dist/verify/outcome-routing/shortfall-rework-issue.d.ts +101 -0
  282. package/dist/verify/outcome-routing/shortfall-rework-issue.d.ts.map +1 -0
  283. package/dist/verify/outcome-routing/shortfall-rework-issue.js +250 -0
  284. package/dist/verify/outcome-routing/shortfall-rework-issue.js.map +1 -0
  285. package/dist/verify/outcome-routing/verification-evidence-unavailable-feedback.d.ts.map +1 -1
  286. package/dist/verify/outcome-routing/verification-evidence-unavailable-feedback.js +4 -1
  287. package/dist/verify/outcome-routing/verification-evidence-unavailable-feedback.js.map +1 -1
  288. package/dist/verify/outcome-routing/verification-feedback.d.ts +38 -7
  289. package/dist/verify/outcome-routing/verification-feedback.d.ts.map +1 -1
  290. package/dist/verify/outcome-routing/verification-feedback.js +45 -46
  291. package/dist/verify/outcome-routing/verification-feedback.js.map +1 -1
  292. package/dist/verify/outcome-routing/verification-history-reset.d.ts +2 -1
  293. package/dist/verify/outcome-routing/verification-history-reset.d.ts.map +1 -1
  294. package/dist/verify/outcome-routing/verification-history-reset.js +5 -2
  295. package/dist/verify/outcome-routing/verification-history-reset.js.map +1 -1
  296. package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts +2 -1
  297. package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts.map +1 -1
  298. package/dist/verify/outcome-routing/verification-model-unavailable-hold.js +5 -1
  299. package/dist/verify/outcome-routing/verification-model-unavailable-hold.js.map +1 -1
  300. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  301. package/dist/verify/outcome-routing/verification-rework-issue.js +4 -1
  302. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  303. package/dist/verify/outcome-routing/verification-rework-messages.d.ts +8 -2
  304. package/dist/verify/outcome-routing/verification-rework-messages.d.ts.map +1 -1
  305. package/dist/verify/outcome-routing/verification-rework-messages.js +18 -7
  306. package/dist/verify/outcome-routing/verification-rework-messages.js.map +1 -1
  307. package/dist/verify/run-selection/default-on-guards.d.ts +15 -0
  308. package/dist/verify/run-selection/default-on-guards.d.ts.map +1 -1
  309. package/dist/verify/run-selection/default-on-guards.js +18 -1
  310. package/dist/verify/run-selection/default-on-guards.js.map +1 -1
  311. package/dist/verify/run-selection/explicit-rearm.d.ts.map +1 -1
  312. package/dist/verify/run-selection/explicit-rearm.js +1 -0
  313. package/dist/verify/run-selection/explicit-rearm.js.map +1 -1
  314. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
  315. package/dist/verify/run-selection/pre-review-gate-dispatch.js +15 -6
  316. package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
  317. package/dist/verify/run-selection/reselection-log-line.d.ts +1 -1
  318. package/dist/verify/run-selection/reselection-log-line.d.ts.map +1 -1
  319. package/dist/verify/run-selection/reselection-log-line.js +6 -2
  320. package/dist/verify/run-selection/reselection-log-line.js.map +1 -1
  321. package/dist/verify/run-selection/unanswered-dispatch.d.ts +20 -0
  322. package/dist/verify/run-selection/unanswered-dispatch.d.ts.map +1 -0
  323. package/dist/verify/run-selection/unanswered-dispatch.js +85 -0
  324. package/dist/verify/run-selection/unanswered-dispatch.js.map +1 -0
  325. package/dist/verify/run-selection/verification-default-on.d.ts.map +1 -1
  326. package/dist/verify/run-selection/verification-default-on.js +2 -1
  327. package/dist/verify/run-selection/verification-default-on.js.map +1 -1
  328. package/dist/verify/shortfalls/delivery-commit-set.d.ts.map +1 -1
  329. package/dist/verify/shortfalls/delivery-commit-set.js +2 -1
  330. package/dist/verify/shortfalls/delivery-commit-set.js.map +1 -1
  331. package/dist/verify/shortfalls/latest-shortfall-judgment.d.ts +24 -0
  332. package/dist/verify/shortfalls/latest-shortfall-judgment.d.ts.map +1 -0
  333. package/dist/verify/shortfalls/latest-shortfall-judgment.js +94 -0
  334. package/dist/verify/shortfalls/latest-shortfall-judgment.js.map +1 -0
  335. package/dist/verify/shortfalls/parked-shortfall-reuse.d.ts.map +1 -1
  336. package/dist/verify/shortfalls/parked-shortfall-reuse.js +20 -6
  337. package/dist/verify/shortfalls/parked-shortfall-reuse.js.map +1 -1
  338. package/dist/verify/shortfalls/shortfall-judgment-log.d.ts +12 -0
  339. package/dist/verify/shortfalls/shortfall-judgment-log.d.ts.map +1 -0
  340. package/dist/verify/shortfalls/shortfall-judgment-log.js +56 -0
  341. package/dist/verify/shortfalls/shortfall-judgment-log.js.map +1 -0
  342. package/dist/verify/shortfalls/shortfall-park-escalation.d.ts.map +1 -1
  343. package/dist/verify/shortfalls/shortfall-park-escalation.js +6 -2
  344. package/dist/verify/shortfalls/shortfall-park-escalation.js.map +1 -1
  345. package/dist/verify/shortfalls/shortfall-park.d.ts +9 -0
  346. package/dist/verify/shortfalls/shortfall-park.d.ts.map +1 -1
  347. package/dist/verify/shortfalls/shortfall-park.js +23 -19
  348. package/dist/verify/shortfalls/shortfall-park.js.map +1 -1
  349. package/dist/verify/shortfalls/shortfall-repeat.d.ts +14 -0
  350. package/dist/verify/shortfalls/shortfall-repeat.d.ts.map +1 -1
  351. package/dist/verify/shortfalls/shortfall-repeat.js +15 -1
  352. package/dist/verify/shortfalls/shortfall-repeat.js.map +1 -1
  353. package/dist/verify/shortfalls/shortfall-rework-hold.d.ts +66 -0
  354. package/dist/verify/shortfalls/shortfall-rework-hold.d.ts.map +1 -0
  355. package/dist/verify/shortfalls/shortfall-rework-hold.js +230 -0
  356. package/dist/verify/shortfalls/shortfall-rework-hold.js.map +1 -0
  357. package/dist/verify/shortfalls/shortfall-rulings.d.ts +40 -10
  358. package/dist/verify/shortfalls/shortfall-rulings.d.ts.map +1 -1
  359. package/dist/verify/shortfalls/shortfall-rulings.js +59 -15
  360. package/dist/verify/shortfalls/shortfall-rulings.js.map +1 -1
  361. package/dist/worktree/focus-worktree-state.d.ts.map +1 -1
  362. package/dist/worktree/focus-worktree-state.js +1 -0
  363. package/dist/worktree/focus-worktree-state.js.map +1 -1
  364. package/dist/worktree/provision.d.ts.map +1 -1
  365. package/dist/worktree/provision.js +1 -0
  366. package/dist/worktree/provision.js.map +1 -1
  367. package/dist/worktree/safety.d.ts.map +1 -1
  368. package/dist/worktree/safety.js +1 -0
  369. package/dist/worktree/safety.js.map +1 -1
  370. package/package.json +1 -1
@@ -0,0 +1,98 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/completion/state-cascade/review-verify-judgment-gate.test.ts,
3
+ // packages/daemon/src/integration/review-opens-after-verify-judgment-regression.test.ts
4
+ // PINNED-BY-END
5
+ import { resolveGateReads } from '../../verify/gate-verdicts/own-gate-verdict.js';
6
+ import { shortfallParkRefusingRework } from '../../verify/shortfalls/shortfall-park.js';
7
+ import { createLogger } from '../../log/daemon-log.js';
8
+ const log = createLogger({ module: 'state-cascade' });
9
+ /** What keeps the window shut, most telling first: a recorded failure, a run in flight, a park, then no record. */
10
+ const PRECEDENCE = ['failed', 'in_flight', 'parked', 'unrecorded'];
11
+ /** Where verify stands on one verify delivery at `sha` (module header). */
12
+ async function readDeliveryVerifyJudgment(deps, subject, delivery, sha) {
13
+ if (deps.isGateRunSelected(delivery.id))
14
+ return 'in_flight';
15
+ // Parked: its recorded shortfall stands at the head the park fixed, and only a ruling or a new commit releases it --
16
+ // a review now would approve that head over the failure (module header, WHICH DELIVERIES).
17
+ if (shortfallParkRefusingRework(delivery) !== null)
18
+ return 'parked';
19
+ const resolution = await resolveGateReads(deps, {
20
+ ...subject, deliveryId: delivery.id, injectionId: delivery.injectionId, gateState: delivery.gateState,
21
+ });
22
+ // No gate governs it: verify never judges it, so no outcome is coming to wait for.
23
+ if (!resolution?.configured)
24
+ return 'judged';
25
+ const explicit = deps.readDeliveryGateOutcome(delivery.id, sha, delivery.gateState, resolution.explicitGateKey);
26
+ if (explicit === 'failed')
27
+ return 'failed';
28
+ if (explicit === 'passed')
29
+ return 'judged';
30
+ return sha !== null && deps.readPassedSha(delivery.id) === sha ? 'judged' : 'unrecorded';
31
+ }
32
+ /** Read whether verify has finished judging the focus HEAD across its verify deliveries. */
33
+ export async function readFocusHeadVerifyJudgment(deps, subject, verifyDeliveries) {
34
+ const sha = deps.resolveJudgedCommit(subject.focusId);
35
+ const states = await Promise.all(verifyDeliveries.map((d) => readDeliveryVerifyJudgment(deps, subject, d, sha)));
36
+ for (const state of PRECEDENCE) {
37
+ const deliveryIds = verifyDeliveries.filter((_d, i) => states[i] === state).map((d) => d.id);
38
+ if (deliveryIds.length > 0)
39
+ return { state, sha, deliveryIds };
40
+ }
41
+ return { state: 'judged', sha, deliveryIds: [] };
42
+ }
43
+ /** True when the judgment lets the review window open. */
44
+ export function verifyJudgmentOpensReviewWindow(judgment) {
45
+ return judgment.state === 'judged';
46
+ }
47
+ /** focusId -> the reason, delivery set and HEAD its declined review request was last logged for (one line each, not per poll). */
48
+ const declineLogged = new Map();
49
+ /** Test-only: forget every logged decline. */
50
+ export function __resetReviewVerifyJudgmentGateForTests() {
51
+ declineLogged.clear();
52
+ }
53
+ /** Why the window stays shut, for the log. */
54
+ function describeDecline(judgment) {
55
+ const head = judgment.sha ? judgment.sha.slice(0, 8) : '(unreadable HEAD)';
56
+ const who = `delivery(ies) ${judgment.deliveryIds.join(', ')}`;
57
+ if (judgment.state === 'failed')
58
+ return `verify FAILED ${who} at ${head}; its rework is next, not a review.`;
59
+ if (judgment.state === 'parked') {
60
+ return `${who} parked on a repeating verify shortfall at ${head} or an earlier head; a review would approve a head its `
61
+ + 'failure stands on -- a ruling on its nodes or a new delivery commit releases the park (its escalation names the ruling).';
62
+ }
63
+ if (judgment.state === 'in_flight') {
64
+ return `verify is still judging ${who} at ${head} (a run is selected and not finished); the window opens once its outcome is recorded.`;
65
+ }
66
+ return `no verify outcome is recorded yet for ${who} at ${head}; the verification tick judges it.`;
67
+ }
68
+ /**
69
+ * The review request waits on verify having finished judging the focus HEAD
70
+ * (module header). In flight or unrecorded: the verification tick answers it.
71
+ * Failed: that failure routes re-work, so no review is spawned. Parked: a ruling
72
+ * or a new delivery commit releases it. A read that
73
+ * throws holds the request (fail closed) and is retried next poll. An absent
74
+ * reader holds nothing.
75
+ */
76
+ export async function declinesReviewBeforeVerifyJudged(focusId, verifyDeliveries, read) {
77
+ if (!read)
78
+ return false;
79
+ let judgment;
80
+ try {
81
+ judgment = await read(focusId, verifyDeliveries);
82
+ }
83
+ catch (err) {
84
+ log.warn(`[state-cascade] Not opening a review window on focus ${focusId}: verify's judgment of its HEAD could not be read: ${err.message}`);
85
+ return true;
86
+ }
87
+ if (verifyJudgmentOpensReviewWindow(judgment)) {
88
+ declineLogged.delete(focusId);
89
+ return false;
90
+ }
91
+ const key = `${judgment.state}:${judgment.deliveryIds.join(',')}@${judgment.sha ?? 'unreadable'}`;
92
+ if (declineLogged.get(focusId) !== key) {
93
+ declineLogged.set(focusId, key);
94
+ log.info(`[state-cascade] Not opening a review window on focus ${focusId}: ${describeDecline(judgment)}`);
95
+ }
96
+ return true;
97
+ }
98
+ //# sourceMappingURL=review-verify-judgment-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-verify-judgment-gate.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/review-verify-judgment-gate.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,8 @@ import { type CommitVerdictGateDeps } from '../review-exit-holds/review-exit-ver
10
10
  import type { GateReads } from '../../verify/gate-verdicts/own-gate-verdict.js';
11
11
  import { type ReviewHeadApproval } from './review-approved-head-gate.js';
12
12
  import type { ReviewCensus } from '../review-exit/review-census-record.js';
13
- import { type StrandedEscalationFiler } from './standing-approval-stranded.js';
13
+ import { type StrandedEscalationFiler, type StrandedEscalationResolver } from './standing-approval-stranded.js';
14
+ import type { ShortfallRulingsReader } from '../../verify/shortfalls/shortfall-rulings.js';
14
15
  /** The focus a pass converges. */
15
16
  export interface StandingApprovalFocus {
16
17
  organizationId: string;
@@ -36,6 +37,10 @@ export interface StandingApprovalDeps extends GateReads, Pick<CommitVerdictGateD
36
37
  externalHoldClock: () => string;
37
38
  /** Files the one escalation for a delivery declined identically across polls (standing-approval-stranded.ts). */
38
39
  fileStrandedEscalation?: StrandedEscalationFiler;
40
+ /** Resolves a delivery's open stranded filings once its stranding ended (standing-approval-stranded.ts). */
41
+ resolveStrandedEscalations?: StrandedEscalationResolver;
42
+ /** The delivery's active shortfall rulings: a failed verdict awaiting re-judgement on one is not stranded. */
43
+ readShortfallRulings?: ShortfallRulingsReader;
39
44
  /** The focus's recorded concern ids (delivery/recorded-concerns.ts), read once per pass; fail-closed to empty. */
40
45
  readRecordedConcernIds: RecordedConcernReader;
41
46
  }
@@ -52,12 +57,16 @@ export interface StandingApprovalOutcome {
52
57
  /**
53
58
  * Whether a gate_state carries no hold or failure detail of any kind. Defensive over the JSONB. Pure.
54
59
  *
55
- * `shortfallProposalIds` (the review exit's undisposed-proposal marker) is NOT read
56
- * here: it only renders a hold this pass re-reads LIVE, fail-closed, before any done
57
- * write (resolveShortfallHold). Nothing clears that marker at an approved head -- the
58
- * review exit wrote it and no review runs there -- so treating it as a hold would
59
- * strand a delivery whose proposals an operator ruling has since disposed. The done
60
- * write clears gate_state, marker included.
60
+ * Two review-exit markers are NOT read here, for one reason: each only renders a
61
+ * hold this pass re-reads LIVE, fail-closed, before any done write, and nothing
62
+ * else clears it at an approved head -- the review exit wrote it and no review runs
63
+ * there -- so treating it as a hold would strand the delivery after its hold lifted.
64
+ * - `shortfallProposalIds` (the undisposed-proposal marker), re-read by
65
+ * resolveShortfallHold: an operator ruling may have disposed the proposals.
66
+ * - `operatorHold` (the open operator-escalation marker), re-read by
67
+ * resolveOperatorHold: the escalation may have been resolved. A released one
68
+ * is cleared by the end of the pass (doneWithheldBy).
69
+ * The done write clears gate_state, markers included.
61
70
  */
62
71
  export declare function gateStateHoldsNothing(gateState: unknown): boolean;
63
72
  /** Whether a delivery sits in verify with a durable verify PASS and no hold. Pure. */
@@ -73,7 +82,8 @@ export declare function censusCoversDelivery(censuses: readonly ReviewCensus[],
73
82
  export declare function __resetStandingApprovalConvergenceForTests(): void;
74
83
  /**
75
84
  * Converge every covered, passed, unheld verify delivery of the focus on its
76
- * standing approval (see the module header). Never throws.
85
+ * standing approval, and examine every failed-verdict one (see the module header).
86
+ * Never throws.
77
87
  */
78
88
  export declare function convergeOnStandingApproval(focus: StandingApprovalFocus, deliveries: readonly FocusDeliveryInfo[], deps: StandingApprovalDeps): Promise<StandingApprovalOutcome>;
79
89
  //# sourceMappingURL=standing-approval-convergence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standing-approval-convergence.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standing-approval-convergence.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
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/state-cascade/standing-approval-convergence.test.ts,
3
+ // packages/daemon/src/completion/state-cascade/standing-approval-failed-verdict.test.ts,
3
4
  // packages/daemon/src/completion/state-cascade/standing-approval-stranded.test.ts,
4
5
  // packages/daemon/src/composition/review-holds-context.test.ts,
6
+ // packages/daemon/src/integration/approved-head-hold-release-completion-regression.test.ts,
7
+ // packages/daemon/src/integration/approved-head-hold-release-no-directive-regression.test.ts,
5
8
  // packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
9
+ // packages/daemon/src/integration/failed-verdict-ruling-rejudge-regression.test.ts,
10
+ // packages/daemon/src/integration/last-shortfall-judgment-round-trip.test.ts,
6
11
  // packages/daemon/src/integration/merge-back-approved-head-regression.test.ts,
7
12
  // packages/daemon/src/integration/shortfall-ruling-disposes-proposals-regression.test.ts,
8
13
  // packages/daemon/src/integration/standing-approval-release-regression.test.ts
@@ -65,6 +70,27 @@
65
70
  * the identical reason across consecutive polls is reported ONCE, anchored to it
66
71
  * (completion/state-cascade/standing-approval-stranded.ts).
67
72
  *
73
+ * For the same reason a marker the review exit LEFT is not a hold here when this
74
+ * pass re-reads its hold live: an operator-hold marker (gate_state.operatorHold)
75
+ * does not keep a delivery out of candidacy. The review exit writes it when its
76
+ * approval stood beside an open operator escalation, and its only other clearer --
77
+ * the review park (spawn/review-hold-park.ts) -- runs only for a queued review
78
+ * spawn, which an approved head never has. The fail-closed live read
79
+ * (resolveOperatorHold) decides instead; when it reads the hold as released, the
80
+ * stale marker is gone by the end of the pass -- the done write clears gate_state,
81
+ * and a delivery another gate keeps in verify has it dropped by
82
+ * clearOperatorHoldGateState (delivery/operator-hold.ts), unless a verify run for
83
+ * it is in flight (that clear re-asserts `verify`; the run's outcome write is next).
84
+ *
85
+ * A FAILED verdict at the approved head is examined on the same poll, never
86
+ * converged (completion/state-cascade/standing-approval-failed-verdict.ts): a verify
87
+ * delivery whose latest verify judgment of the approved commit is a shortfall
88
+ * failure, with no verify run, park, new ruling or owed work answering for it, is
89
+ * declined `failed_verdict` and counted by the same stranded streak. Once a
90
+ * delivery's stranding ends -- this pass converged it, or it left verify -- its
91
+ * open stranded filing is resolved (standing-approval-stranded.ts
92
+ * resolveClearedStrands).
93
+ *
68
94
  * FAILS CLOSED: an unreadable head, approval, census, issue list, workflow or hold
69
95
  * leaves the delivery in verify; the next poll retries. A read failure is never
70
96
  * converted into done.
@@ -80,29 +106,34 @@ import { DELIVERY_STATUS } from '@telora/daemon-core';
80
106
  import { sameCommit } from '../../queries/focus-review/focus-review-approval.js';
81
107
  import { resolveReconciledWrite } from '../../delivery/delivery-reconciler-apply.js';
82
108
  import { toReconcilerIssues } from '../../delivery/recorded-concerns.js';
83
- import { resolveOperatorHold, describeOperatorHold } from '../../delivery/operator-hold.js';
109
+ import { resolveOperatorHold, describeOperatorHold, clearOperatorHoldGateState } from '../../delivery/operator-hold.js';
84
110
  import { resolveExternalHold, describeExternalHold } from '../../delivery/external-hold.js';
85
111
  import { resolveShortfallHold, describeShortfallHold } from '../review-exit-holds/review-exit-shortfall.js';
86
112
  import { readDoneRouteVerdict, verifyRunHoldsDone, } from '../review-exit-holds/review-exit-verdict-gate.js';
87
113
  import { isHeadAlreadyApproved } from './review-approved-head-gate.js';
88
114
  import { readShortfallPark } from '../../queries/delivery-gate-state/delivery-gate-state.js';
89
115
  import { createLogger } from '../../log/daemon-log.js';
90
- import { reportStandingApprovalDeclines, } from './standing-approval-stranded.js';
116
+ import { reportStandingApprovalDeclines, resolveClearedStrands, } from './standing-approval-stranded.js';
117
+ import { examineFailedVerdicts, failedVerdictCandidates, forgetFailedVerdictNotes, } from './standing-approval-failed-verdict.js';
91
118
  const log = createLogger({ module: 'state-cascade' });
92
119
  /** gate_state keys that record a verify failure or a hold (never a pass). */
93
120
  const HOLD_OR_FAILURE_KEYS = [
94
121
  'verification', 'shortfallReconciliation', 'evidenceUnavailable', 'modelUnavailable',
95
- 'operatorHold', 'externalHold', 'commitVerdictHold',
122
+ 'externalHold', 'commitVerdictHold',
96
123
  ];
97
124
  /**
98
125
  * Whether a gate_state carries no hold or failure detail of any kind. Defensive over the JSONB. Pure.
99
126
  *
100
- * `shortfallProposalIds` (the review exit's undisposed-proposal marker) is NOT read
101
- * here: it only renders a hold this pass re-reads LIVE, fail-closed, before any done
102
- * write (resolveShortfallHold). Nothing clears that marker at an approved head -- the
103
- * review exit wrote it and no review runs there -- so treating it as a hold would
104
- * strand a delivery whose proposals an operator ruling has since disposed. The done
105
- * write clears gate_state, marker included.
127
+ * Two review-exit markers are NOT read here, for one reason: each only renders a
128
+ * hold this pass re-reads LIVE, fail-closed, before any done write, and nothing
129
+ * else clears it at an approved head -- the review exit wrote it and no review runs
130
+ * there -- so treating it as a hold would strand the delivery after its hold lifted.
131
+ * - `shortfallProposalIds` (the undisposed-proposal marker), re-read by
132
+ * resolveShortfallHold: an operator ruling may have disposed the proposals.
133
+ * - `operatorHold` (the open operator-escalation marker), re-read by
134
+ * resolveOperatorHold: the escalation may have been resolved. A released one
135
+ * is cleared by the end of the pass (doneWithheldBy).
136
+ * The done write clears gate_state, markers included.
106
137
  */
107
138
  export function gateStateHoldsNothing(gateState) {
108
139
  if (gateState == null)
@@ -140,6 +171,7 @@ const lastLoggedReason = new Map();
140
171
  /** Test seam: forget logged hold reasons. */
141
172
  export function __resetStandingApprovalConvergenceForTests() {
142
173
  lastLoggedReason.clear();
174
+ forgetFailedVerdictNotes();
143
175
  }
144
176
  function logHeldOnce(focus, d, sha, reason) {
145
177
  if (lastLoggedReason.get(d.id) === reason)
@@ -152,8 +184,14 @@ function logHeldOnce(focus, d, sha, reason) {
152
184
  * Why the review exit's done gates withhold `d`, or null when every gate lets it
153
185
  * through. `held.shortfall` (the focus-scoped proposal read) and `held.concernIds`
154
186
  * (the recorded concerns) are taken once per pass.
187
+ *
188
+ * An operator hold read as released leaves no marker behind: when a later gate
189
+ * withholds done (or throws), the stale gate_state.operatorHold is cleared here --
190
+ * clearOperatorHoldGateState is a no-op without one -- and a delivery let through
191
+ * has it cleared by the done write. The one exception is a verify run still in
192
+ * flight for it, whose own outcome write is next.
155
193
  */
156
- async function doneWithheldBy(deps, focus, d, { approvedSha, advance }, held) {
194
+ async function doneWithheldBy(deps, focus, d, approved, held) {
157
195
  const { shortfall, concernIds } = held;
158
196
  const issues = await deps.getDeliveryIssues(d.id);
159
197
  const decision = resolveReconciledWrite({
@@ -172,6 +210,21 @@ async function doneWithheldBy(deps, focus, d, { approvedSha, advance }, held) {
172
210
  const operatorHold = await resolveOperatorHold(deps, d.id, focus.focusId);
173
211
  if (operatorHold.held)
174
212
  return { kind: 'operator_hold', reason: describeOperatorHold(operatorHold) };
213
+ let converges = false;
214
+ try {
215
+ const withheld = await withheldPastOperatorHold(deps, focus, d, approved, shortfall);
216
+ converges = withheld === null;
217
+ return withheld;
218
+ }
219
+ finally {
220
+ // Not while a verify run for it is in flight: the clear re-asserts `verify`,
221
+ // which could undo that run's verify_failed route. The next pass clears it.
222
+ if (!converges && !verifyRunHoldsDone(deps, d.id))
223
+ await clearOperatorHoldGateState(deps, d.id, d.gateState);
224
+ }
225
+ }
226
+ /** The done gates after the operator hold, in the review exit's order (doneWithheldBy). */
227
+ async function withheldPastOperatorHold(deps, focus, d, { approvedSha, advance }, shortfall) {
175
228
  const externalHold = await resolveExternalHold(deps, d.id, d.gateState, deps.evaluateExternalCondition, deps.externalHoldClock);
176
229
  if (externalHold.held)
177
230
  return { kind: 'external_hold', reason: describeExternalHold(externalHold) };
@@ -212,22 +265,23 @@ async function readApprovedHead(deps, focus) {
212
265
  }
213
266
  /**
214
267
  * Converge every covered, passed, unheld verify delivery of the focus on its
215
- * standing approval (see the module header). Never throws.
268
+ * standing approval, and examine every failed-verdict one (see the module header).
269
+ * Never throws.
216
270
  */
217
271
  export async function convergeOnStandingApproval(focus, deliveries, deps) {
218
272
  const outcome = { converged: [], held: [] };
219
273
  const candidates = deliveries.filter(isStandingApprovalCandidate);
274
+ const failed = failedVerdictCandidates(deliveries);
220
275
  for (const d of deliveries)
221
276
  if (!candidates.includes(d))
222
277
  lastLoggedReason.delete(d.id);
223
278
  const seen = deliveries.map((d) => d.id);
224
- if (candidates.length === 0 || deps.isReviewSessionActive(focus.focusId)) {
225
- await reportStandingApprovalDeclines(focus, null, seen, [], deps.fileStrandedEscalation);
226
- return outcome;
227
- }
228
- const approved = await readApprovedHead(deps, focus);
279
+ const approved = (candidates.length === 0 && failed.length === 0) || deps.isReviewSessionActive(focus.focusId)
280
+ ? null
281
+ : await readApprovedHead(deps, focus);
229
282
  if (approved === null) {
230
283
  await reportStandingApprovalDeclines(focus, null, seen, [], deps.fileStrandedEscalation);
284
+ await resolveClearedStrands(focus, deliveries, [], null, deps.resolveStrandedEscalations);
231
285
  return outcome;
232
286
  }
233
287
  const { approvedSha } = approved;
@@ -244,9 +298,20 @@ export async function convergeOnStandingApproval(focus, deliveries, deps) {
244
298
  }
245
299
  if (covered.length > 0)
246
300
  await convergeCovered(focus, covered, deps, approved, outcome, decline);
301
+ if (failed.length > 0)
302
+ declines.push(...await examineFailed(focus, failed, deps, approved, outcome));
247
303
  await reportStandingApprovalDeclines(focus, approvedSha, seen, declines, deps.fileStrandedEscalation);
304
+ await resolveClearedStrands(focus, deliveries, outcome.converged, approvedSha, deps.resolveStrandedEscalations);
248
305
  return outcome;
249
306
  }
307
+ /** Examine the failed-verdict candidates at the approved head; each counted one is also reported as held. */
308
+ async function examineFailed(focus, failed, deps, approved, outcome) {
309
+ const head = { approvedSha: approved.approvedSha, advanceHead: approved.advance?.head ?? null };
310
+ const declines = await examineFailedVerdicts(focus, failed, head, deps, () => deps.readRecordedConcernIds(focus.focusId));
311
+ for (const d of declines)
312
+ outcome.held.push({ deliveryId: d.deliveryId, reason: d.reason });
313
+ return declines;
314
+ }
250
315
  /** Cross each census-covered candidate through the done gates, writing done for every one they let through. */
251
316
  async function convergeCovered(focus, covered, deps, approved, outcome, decline) {
252
317
  const shortfall = await resolveShortfallHold(deps, focus.focusId, focus.focusName);
@@ -1 +1 @@
1
- {"version":3,"file":"standing-approval-convergence.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,qFAAqF;AACrF,kEAAkE;AAClE,mFAAmF;AACnF,iFAAiF;AACjF,4FAA4F;AAC5F,iFAAiF;AACjF,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAOtD,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAA8B,MAAM,qCAAqC,CAAC;AACrG,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAmC,MAAM,iCAAiC,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAsB,MAAM,+CAA+C,CAAC;AAChI,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAGnB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAE,qBAAqB,EAA2B,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,8BAA8B,GAI/B,MAAM,iCAAiC,CAAC;AAEzC,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AAwCtD,6EAA6E;AAC7E,MAAM,oBAAoB,GAAG;IAC3B,cAAc,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,kBAAkB;IACpF,cAAc,EAAE,cAAc,EAAE,mBAAmB;CAC3C,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAAkB;IACtD,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5E,MAAM,IAAI,GAAG,SAAoC,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAK,CAA0B,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7H,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACpE,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AAC/C,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,2BAA2B,CACzC,CAAmF;IAEnF,OAAO,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,MAAM,IAAI,CAAC,CAAC,mBAAmB,KAAK,QAAQ,IAAI,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAClI,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAiC,EACjC,WAAmB,EACnB,QAA0D;IAE1D,MAAM,MAAM,GAAG,QAAQ;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;SAC7C,MAAM,CAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5H,IAAI,CAAC,MAAM,EAAE,SAAS;QAAE,OAAO,KAAK,CAAC;IACrC,OAAO,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,cAAc,IAAI,CAAC,CAAC,CAAC,CAAC;AACzH,CAAC;AAED,qGAAqG;AACrG,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,6CAA6C;AAC7C,MAAM,UAAU,0CAA0C;IACxD,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,WAAW,CAAC,KAA4B,EAAE,CAAoB,EAAE,GAAW,EAAE,MAAc;IAClG,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM;QAAE,OAAO;IAClD,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACnC,GAAG,CAAC,IAAI,CACN,6BAA6B,CAAC,CAAC,IAAI,SAAS,KAAK,CAAC,SAAS,wCAAwC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;QACtH,mDAAmD,MAAM,sCAAsC,CAChG,CAAC;AACJ,CAAC;AAQD;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAC3B,IAA0B,EAC1B,KAA4B,EAC5B,CAAoB,EACpB,EAAE,WAAW,EAAE,OAAO,EAAgB,EACtC,IAAmE;IAEnE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,sBAAsB,CAAC;QACtC,KAAK,EAAE;YACL,aAAa,EAAE,eAAe,CAAC,MAAM;YACrC,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC;YAC9C,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE;YACrC,YAAY,EAAE,IAAI;YAClB,+EAA+E;YAC/E,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE;SACzI;KACF,CAAC,CAAC;IACH,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;QAC7C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,+BAA+B,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IACtH,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC1E,IAAI,YAAY,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;IACpG,MAAM,YAAY,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,yBAAyB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChI,IAAI,YAAY,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC;IACpG,IAAI,CAAC,SAAS,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;IAClG,IAAI,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;IACjH,oFAAoF;IACpF,kFAAkF;IAClF,qDAAqD;IACrD,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACxC,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjH,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;QACnE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,wBAAwB,CAAC,OAAO,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IACjI,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnI,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,IAAI,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,6BAA6B,EAAE,CAAC;IACrI,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAA0B,EAAE,KAA4B;IACtF,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,SAAS,8EAA+E,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpJ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrG,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAA4B,EAC5B,UAAwC,EACxC,IAA0B;IAE1B,MAAM,OAAO,GAA4B,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACrE,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAClE,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzE,MAAM,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,8BAA8B,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzF,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;IAEjC,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,CAAC,CAAoB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAY,EAAQ,EAAE;QACzE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACxE,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;IACzF,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,qDAAqD,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChG,MAAM,8BAA8B,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtG,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,+GAA+G;AAC/G,KAAK,UAAU,eAAe,CAC5B,KAA4B,EAC5B,OAAqC,EACrC,IAA0B,EAC1B,QAAsB,EACtB,OAAgC,EAChC,OAA2D;IAE3D,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3F,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC;YAChH,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;gBAClG,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,eAAe,CAAC,MAAM;aACzE,CAAC,CAAC;YACH,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7B,GAAG,CAAC,IAAI,CACN,6BAA6B,CAAC,CAAC,IAAI,mCAAmC,KAAK,CAAC,SAAS,yBAAyB;gBAC9G,wBAAwB,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,iEAAiE;gBAC1H,uHAAuH,CACxH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,2BAA4B,GAAa,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"standing-approval-convergence.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * The standing-approval pass's BACKSTOP for a FAILED verdict: a verify delivery
3
+ * whose latest verify judgment of the already-approved focus head is a failure is
4
+ * examined on every cascade poll and, when nothing will move it, reported as a
5
+ * decline that the stranded counter files after the same
6
+ * STANDING_APPROVAL_STRANDED_POLLS identical polls as a passed one
7
+ * (completion/state-cascade/standing-approval-stranded.ts), naming each held node
8
+ * (completion/state-cascade/failed-verdict-stranded-filing.ts).
9
+ *
10
+ * WHY. completion/state-cascade/standing-approval-convergence.ts examined only a
11
+ * delivery whose recorded verify outcome is `passed`. A failed one at an approved
12
+ * head has no other mover: review does not reopen at that head
13
+ * (completion/state-cascade/review-approved-head-gate.ts), verify does not judge an
14
+ * unchanged commit again on its own, and an approval does not cover a failed
15
+ * verdict, so it never converges -- and the convergence's candidate filter dropped
16
+ * it before the stranded counter ever saw it, so nothing was filed either.
17
+ *
18
+ * WHAT IS READ AS "FAILED AT THE APPROVED HEAD", in order:
19
+ * 1. verify/shortfalls/latest-shortfall-judgment.ts readFailedShortfallJudgment:
20
+ * the delivery sits in verify, unparked; its row's verification_outcome is
21
+ * 'failed' or unrecorded (null -- the edge resets a failure on its re-work
22
+ * round trip); no deterministic-failure, blind-evidence or awaited-model
23
+ * detail stands live; and its latest shortfall judgment is the LIVE
24
+ * gate_state.shortfallReconciliation, else the KEPT
25
+ * verificationHistory.lastShortfallJudgment, naming at least one node;
26
+ * 2. that judgment's commit (its judgedSha: the commit its re-work writer
27
+ * stamped, else its gate verdict's sha) is the approved commit, or the head
28
+ * a foreign-only advance moved past it. A judgment naming no commit, or
29
+ * another commit, is not about this head (a later commit is judged at the
30
+ * focus's pre-review run).
31
+ * The row's outcome is never read alone: it names no commit.
32
+ *
33
+ * NEVER CONVERGES. A failed verdict is not covered by an approval; this pass only
34
+ * reports it. Its done gates are not crossed.
35
+ *
36
+ * NOT COUNTED -- something already answers for the delivery, and the identical-poll
37
+ * count starts over like any other change of state:
38
+ * - a verify run is selected or in flight for it (isGateRunSelected): verify is
39
+ * judging it now;
40
+ * - it is PARKED: the park filed its one escalation
41
+ * (verify/shortfalls/shortfall-park-escalation.ts) and a ruling releases it
42
+ * (rule 1 above reads no park);
43
+ * - a ruling the judgment did not apply is in force (shortfall-park.ts
44
+ * rulingRecordedSince against the fingerprint its repeat record carries): it
45
+ * awaits re-judgement, which the ruling re-arm selects
46
+ * (verify/shortfalls/shortfall-rulings.ts);
47
+ * - it owes open work (delivery/recorded-concerns.ts splitOpenWork over its work
48
+ * issues): a coding pass is next, and the live open-work pass routes it.
49
+ * An unreadable input (its issues, or its rulings) decides nothing: like the
50
+ * passed path's, the delivery is declined `read_failed`, counted and filed after
51
+ * the same polls -- still naming the held nodes -- so a read that never comes back
52
+ * does not hide it.
53
+ *
54
+ * THE SIGNATURE the streak compares is the approved commit, the row's outcome and
55
+ * the judgment (when it held, the commit it judged, and per node its id, its
56
+ * unjudged discriminator and its reason): a new head, a changed outcome or a new
57
+ * judgment starts the count over.
58
+ *
59
+ * History: docs/daemon/history-team-lifecycle.md (completion/state-cascade/standing-approval-failed-verdict.ts).
60
+ *
61
+ * @module completion/state-cascade/standing-approval-failed-verdict
62
+ */
63
+ import type { FocusDeliveryInfo } from '../../types/index.js';
64
+ import type { getDeliveryIssues } from '../../queries/deliveries/issues.js';
65
+ import { type FailedShortfallJudgment } from '../../verify/shortfalls/latest-shortfall-judgment.js';
66
+ import type { ShortfallRulingsReader } from '../../verify/shortfalls/shortfall-rulings.js';
67
+ import type { StandingApprovalDecline } from './standing-approval-stranded.js';
68
+ /** The reads the examination takes (a slice of StandingApprovalDeps). */
69
+ export interface FailedVerdictDeps {
70
+ /** Whether a verify run for the delivery is selected or in flight. Absent: none is. */
71
+ isGateRunSelected?: (deliveryId: string) => boolean;
72
+ getDeliveryIssues: typeof getDeliveryIssues;
73
+ /** The delivery's active shortfall rulings and their fingerprint. Absent: none are known. */
74
+ readShortfallRulings?: ShortfallRulingsReader;
75
+ }
76
+ /** A verify delivery whose latest judgment is a shortfall failure, before its commit is compared with the head. */
77
+ export interface FailedVerdictCandidate {
78
+ delivery: FocusDeliveryInfo;
79
+ failed: FailedShortfallJudgment;
80
+ }
81
+ /** The approved commit, and the head a foreign-only advance moved past it (null when none). */
82
+ export interface FailedVerdictHead {
83
+ approvedSha: string;
84
+ advanceHead: string | null;
85
+ }
86
+ /** The focus the examination logs under. */
87
+ interface FailedVerdictFocus {
88
+ focusId: string;
89
+ focusName: string;
90
+ }
91
+ /**
92
+ * The deliveries whose latest verify judgment is a shortfall failure (rule 1 of
93
+ * the module header); every other delivery's logged state is forgotten.
94
+ */
95
+ export declare function failedVerdictCandidates(deliveries: readonly FocusDeliveryInfo[]): FailedVerdictCandidate[];
96
+ /** What the streak compares for a failed-verdict decline (module header, THE SIGNATURE). Pure. */
97
+ export declare function failedVerdictSignature(failed: FailedShortfallJudgment, approvedSha: string): string;
98
+ /** Forget every logged state (the convergence's test seam calls it). */
99
+ export declare function forgetFailedVerdictNotes(): void;
100
+ /**
101
+ * Examine each failed-verdict candidate at the approved head and return the
102
+ * declines to count (module header). `readConcernIds` is called at most once.
103
+ * Never throws: a read that fails is a `read_failed` decline.
104
+ */
105
+ export declare function examineFailedVerdicts(focus: FailedVerdictFocus, candidates: readonly FailedVerdictCandidate[], head: FailedVerdictHead, deps: FailedVerdictDeps, readConcernIds: () => Promise<ReadonlySet<string>>): Promise<StandingApprovalDecline[]>;
106
+ export {};
107
+ //# sourceMappingURL=standing-approval-failed-verdict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standing-approval-failed-verdict.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-failed-verdict.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAI5E,OAAO,EAA+B,KAAK,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAEjI,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAM/E,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C;AAED,mHAAmH;AACnH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,4CAA4C;AAC5C,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,sBAAsB,EAAE,CAQ1G;AASD,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGnG;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAkDD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,SAAS,sBAAsB,EAAE,EAC7C,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GACjD,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAgCpC"}