@telora/daemon 0.24.40 → 0.24.55

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 (387) hide show
  1. package/build-info.json +9 -3
  2. package/dist/completion/completion-event/unfinished-work.d.ts +3 -3
  3. package/dist/completion/review-cycle-budget/review-loop-detection.d.ts.map +1 -1
  4. package/dist/completion/review-cycle-budget/review-loop-detection.js +2 -1
  5. package/dist/completion/review-cycle-budget/review-loop-detection.js.map +1 -1
  6. package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts +1 -1
  7. package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts.map +1 -1
  8. package/dist/completion/review-exit-holds/review-exit-verdict-gate.js +2 -3
  9. package/dist/completion/review-exit-holds/review-exit-verdict-gate.js.map +1 -1
  10. package/dist/completion/state-cascade/focus-next-step-read.d.ts +38 -0
  11. package/dist/completion/state-cascade/focus-next-step-read.d.ts.map +1 -0
  12. package/dist/completion/state-cascade/focus-next-step-read.js +188 -0
  13. package/dist/completion/state-cascade/focus-next-step-read.js.map +1 -0
  14. package/dist/completion/state-cascade/review-request-gate.d.ts.map +1 -1
  15. package/dist/completion/state-cascade/review-request-gate.js +1 -0
  16. package/dist/completion/state-cascade/review-request-gate.js.map +1 -1
  17. package/dist/completion/state-cascade/review-request-next-step.d.ts +56 -0
  18. package/dist/completion/state-cascade/review-request-next-step.d.ts.map +1 -0
  19. package/dist/completion/state-cascade/review-request-next-step.js +47 -0
  20. package/dist/completion/state-cascade/review-request-next-step.js.map +1 -0
  21. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts +1 -1
  22. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts.map +1 -1
  23. package/dist/completion/state-cascade/review-verify-judgment-gate.js +1 -0
  24. package/dist/completion/state-cascade/review-verify-judgment-gate.js.map +1 -1
  25. package/dist/completion/state-cascade/state-cascade.d.ts +12 -7
  26. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  27. package/dist/completion/state-cascade/state-cascade.js +36 -105
  28. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  29. package/dist/composition/commit-gate-context.d.ts.map +1 -1
  30. package/dist/composition/commit-gate-context.js +1 -0
  31. package/dist/composition/commit-gate-context.js.map +1 -1
  32. package/dist/composition/daemon-contexts.js +1 -1
  33. package/dist/composition/execution-migrations-context.d.ts.map +1 -1
  34. package/dist/composition/execution-migrations-context.js +3 -1
  35. package/dist/composition/execution-migrations-context.js.map +1 -1
  36. package/dist/composition/execution-process-context.js +1 -1
  37. package/dist/composition/execution-recovery-context.d.ts +4 -3
  38. package/dist/composition/execution-recovery-context.d.ts.map +1 -1
  39. package/dist/composition/execution-recovery-context.js +6 -3
  40. package/dist/composition/execution-recovery-context.js.map +1 -1
  41. package/dist/composition/execution-worktree-context.js +1 -1
  42. package/dist/composition/focus-next-step-context.d.ts +19 -0
  43. package/dist/composition/focus-next-step-context.d.ts.map +1 -0
  44. package/dist/composition/focus-next-step-context.js +51 -0
  45. package/dist/composition/focus-next-step-context.js.map +1 -0
  46. package/dist/composition/runtime-contexts.d.ts.map +1 -1
  47. package/dist/composition/runtime-contexts.js +6 -18
  48. package/dist/composition/runtime-contexts.js.map +1 -1
  49. package/dist/composition/runtime-poll-context.d.ts +8 -53
  50. package/dist/composition/runtime-poll-context.d.ts.map +1 -1
  51. package/dist/composition/runtime-poll-context.js +35 -94
  52. package/dist/composition/runtime-poll-context.js.map +1 -1
  53. package/dist/composition/runtime-prd-context.d.ts +8 -0
  54. package/dist/composition/runtime-prd-context.d.ts.map +1 -1
  55. package/dist/composition/runtime-prd-context.js +32 -0
  56. package/dist/composition/runtime-prd-context.js.map +1 -1
  57. package/dist/composition/runtime-spawn-pass-context.d.ts.map +1 -1
  58. package/dist/composition/runtime-spawn-pass-context.js +2 -3
  59. package/dist/composition/runtime-spawn-pass-context.js.map +1 -1
  60. package/dist/composition/state-cascade-context.d.ts +2 -0
  61. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  62. package/dist/composition/state-cascade-context.js +9 -0
  63. package/dist/composition/state-cascade-context.js.map +1 -1
  64. package/dist/composition/tower-pass-context.d.ts +6 -1
  65. package/dist/composition/tower-pass-context.d.ts.map +1 -1
  66. package/dist/composition/tower-pass-context.js +12 -2
  67. package/dist/composition/tower-pass-context.js.map +1 -1
  68. package/dist/composition/verification-context.d.ts.map +1 -1
  69. package/dist/composition/verification-context.js +15 -3
  70. package/dist/composition/verification-context.js.map +1 -1
  71. package/dist/config/live-daemon-config.js +1 -1
  72. package/dist/daemon-state/awaiting-slot.d.ts.map +1 -1
  73. package/dist/daemon-state/awaiting-slot.js +2 -0
  74. package/dist/daemon-state/awaiting-slot.js.map +1 -1
  75. package/dist/daemon-state/branch-removal-record.d.ts +30 -0
  76. package/dist/daemon-state/branch-removal-record.d.ts.map +1 -0
  77. package/dist/daemon-state/branch-removal-record.js +103 -0
  78. package/dist/daemon-state/branch-removal-record.js.map +1 -0
  79. package/dist/daemon-state/focus-team-state.js +1 -1
  80. package/dist/delivery/advance-hold.d.ts +8 -19
  81. package/dist/delivery/advance-hold.d.ts.map +1 -1
  82. package/dist/delivery/advance-hold.js +11 -36
  83. package/dist/delivery/advance-hold.js.map +1 -1
  84. package/dist/delivery/commit-verdict-hold.d.ts +1 -1
  85. package/dist/delivery/commit-verdict-hold.js +1 -1
  86. package/dist/delivery/recorded-concerns.d.ts.map +1 -1
  87. package/dist/delivery/recorded-concerns.js +0 -2
  88. package/dist/delivery/recorded-concerns.js.map +1 -1
  89. package/dist/directive/directive-queue.d.ts +4 -16
  90. package/dist/directive/directive-queue.d.ts.map +1 -1
  91. package/dist/directive/directive-queue.js +4 -12
  92. package/dist/directive/directive-queue.js.map +1 -1
  93. package/dist/directive/phase-sync.d.ts +1 -1
  94. package/dist/directive/phase-sync.js +1 -1
  95. package/dist/focus/crash-recovery.d.ts +10 -32
  96. package/dist/focus/crash-recovery.d.ts.map +1 -1
  97. package/dist/focus/crash-recovery.js +55 -150
  98. package/dist/focus/crash-recovery.js.map +1 -1
  99. package/dist/focus/daemon-contexts-runtime.d.ts +3 -3
  100. package/dist/focus/daemon-contexts-runtime.d.ts.map +1 -1
  101. package/dist/focus/daemon-contexts.js +1 -1
  102. package/dist/focus/directive-executor.d.ts.map +1 -1
  103. package/dist/focus/directive-executor.js +3 -7
  104. package/dist/focus/directive-executor.js.map +1 -1
  105. package/dist/focus/failed-head-rework-start.d.ts +61 -0
  106. package/dist/focus/failed-head-rework-start.d.ts.map +1 -0
  107. package/dist/focus/failed-head-rework-start.js +52 -0
  108. package/dist/focus/failed-head-rework-start.js.map +1 -0
  109. package/dist/focus/focus-activity-record.d.ts +4 -2
  110. package/dist/focus/focus-activity-record.d.ts.map +1 -1
  111. package/dist/focus/focus-activity-record.js +4 -2
  112. package/dist/focus/focus-activity-record.js.map +1 -1
  113. package/dist/focus/focus-liveness-pass.d.ts +62 -0
  114. package/dist/focus/focus-liveness-pass.d.ts.map +1 -0
  115. package/dist/focus/focus-liveness-pass.js +197 -0
  116. package/dist/focus/focus-liveness-pass.js.map +1 -0
  117. package/dist/focus/focus-poller-spawn.js +2 -2
  118. package/dist/focus/focus-poller-spawn.js.map +1 -1
  119. package/dist/focus/focus-poller-state.js +1 -1
  120. package/dist/focus/live-branch-preservation.d.ts +123 -0
  121. package/dist/focus/live-branch-preservation.d.ts.map +1 -0
  122. package/dist/focus/live-branch-preservation.js +192 -0
  123. package/dist/focus/live-branch-preservation.js.map +1 -0
  124. package/dist/focus/migration-claim-pass.d.ts +2 -0
  125. package/dist/focus/migration-claim-pass.d.ts.map +1 -1
  126. package/dist/focus/migration-claim-pass.js +57 -22
  127. package/dist/focus/migration-claim-pass.js.map +1 -1
  128. package/dist/focus/migration-held-set-publish.d.ts +28 -2
  129. package/dist/focus/migration-held-set-publish.d.ts.map +1 -1
  130. package/dist/focus/migration-held-set-publish.js +14 -0
  131. package/dist/focus/migration-held-set-publish.js.map +1 -1
  132. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  133. package/dist/focus/pending-spawn-pass-deps.js +2 -0
  134. package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
  135. package/dist/focus/pending-spawn-review-next-step.d.ts +5 -11
  136. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  137. package/dist/focus/pending-spawn-review-next-step.js +26 -72
  138. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  139. package/dist/focus/ready-focus-spawn-action.d.ts.map +1 -1
  140. package/dist/focus/ready-focus-spawn-action.js +2 -2
  141. package/dist/focus/ready-focus-spawn-action.js.map +1 -1
  142. package/dist/focus/review-refire-gate.d.ts +25 -0
  143. package/dist/focus/review-refire-gate.d.ts.map +1 -0
  144. package/dist/focus/review-refire-gate.js +68 -0
  145. package/dist/focus/review-refire-gate.js.map +1 -0
  146. package/dist/focus/verify-routing-passes.d.ts +8 -11
  147. package/dist/focus/verify-routing-passes.d.ts.map +1 -1
  148. package/dist/focus/verify-routing-passes.js +1 -2
  149. package/dist/focus/verify-routing-passes.js.map +1 -1
  150. package/dist/git/types.js +1 -1
  151. package/dist/prd/arm-refusal-streak.d.ts +102 -0
  152. package/dist/prd/arm-refusal-streak.d.ts.map +1 -0
  153. package/dist/prd/arm-refusal-streak.js +136 -0
  154. package/dist/prd/arm-refusal-streak.js.map +1 -0
  155. package/dist/prd/arm-refusal.d.ts.map +1 -1
  156. package/dist/prd/arm-refusal.js +7 -4
  157. package/dist/prd/arm-refusal.js.map +1 -1
  158. package/dist/prd/controller-shared.d.ts +40 -1
  159. package/dist/prd/controller-shared.d.ts.map +1 -1
  160. package/dist/prd/controller-shared.js +28 -2
  161. package/dist/prd/controller-shared.js.map +1 -1
  162. package/dist/prd/controller.d.ts.map +1 -1
  163. package/dist/prd/controller.js +3 -1
  164. package/dist/prd/controller.js.map +1 -1
  165. package/dist/prd/frontier-arming.d.ts +10 -2
  166. package/dist/prd/frontier-arming.d.ts.map +1 -1
  167. package/dist/prd/frontier-arming.js +91 -7
  168. package/dist/prd/frontier-arming.js.map +1 -1
  169. package/dist/prd/scoping-prompt.d.ts +8 -0
  170. package/dist/prd/scoping-prompt.d.ts.map +1 -1
  171. package/dist/prd/scoping-prompt.js +18 -0
  172. package/dist/prd/scoping-prompt.js.map +1 -1
  173. package/dist/prompt-sections/qa-failure-section.d.ts.map +1 -1
  174. package/dist/prompt-sections/qa-failure-section.js +3 -1
  175. package/dist/prompt-sections/qa-failure-section.js.map +1 -1
  176. package/dist/queries/api-client/shared.js +1 -1
  177. package/dist/queries/deliveries/deliveries.js +1 -1
  178. package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts +4 -3
  179. package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts.map +1 -1
  180. package/dist/queries/delivery-gate-state/delivery-gate-state.js +1 -1
  181. package/dist/queries/escalations/escalations.d.ts.map +1 -1
  182. package/dist/queries/escalations/escalations.js +0 -1
  183. package/dist/queries/escalations/escalations.js.map +1 -1
  184. package/dist/queries/escalations/incident-record.d.ts.map +1 -1
  185. package/dist/queries/escalations/incident-record.js +1 -0
  186. package/dist/queries/escalations/incident-record.js.map +1 -1
  187. package/dist/queries/focus-review/review-criterion-verdicts.d.ts.map +1 -1
  188. package/dist/queries/focus-review/review-criterion-verdicts.js +1 -0
  189. package/dist/queries/focus-review/review-criterion-verdicts.js.map +1 -1
  190. package/dist/queries/focuses/focus-discovery.js +1 -1
  191. package/dist/queries/migrations/live-focus-branches.d.ts +23 -0
  192. package/dist/queries/migrations/live-focus-branches.d.ts.map +1 -1
  193. package/dist/queries/migrations/live-focus-branches.js +32 -1
  194. package/dist/queries/migrations/live-focus-branches.js.map +1 -1
  195. package/dist/queries/prd/prd.d.ts.map +1 -1
  196. package/dist/queries/prd/prd.js +1 -16
  197. package/dist/queries/prd/prd.js.map +1 -1
  198. package/dist/queries/qa-packets/focus-qa-failure.d.ts +18 -0
  199. package/dist/queries/qa-packets/focus-qa-failure.d.ts.map +1 -1
  200. package/dist/queries/qa-packets/focus-qa-failure.js +14 -1
  201. package/dist/queries/qa-packets/focus-qa-failure.js.map +1 -1
  202. package/dist/queries/tower-decisions/tower-decisions.d.ts.map +1 -1
  203. package/dist/queries/tower-decisions/tower-decisions.js +1 -0
  204. package/dist/queries/tower-decisions/tower-decisions.js.map +1 -1
  205. package/dist/queries/verification/verification.d.ts +10 -0
  206. package/dist/queries/verification/verification.d.ts.map +1 -1
  207. package/dist/queries/verification/verification.js +1 -1
  208. package/dist/queries/verification/verification.js.map +1 -1
  209. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  210. package/dist/spawn/spawn-decision.js +1 -18
  211. package/dist/spawn/spawn-decision.js.map +1 -1
  212. package/dist/supervision/escalation-suppression.js +1 -1
  213. package/dist/supervision/failed-head-rerun.d.ts +7 -0
  214. package/dist/supervision/failed-head-rerun.d.ts.map +1 -0
  215. package/dist/supervision/failed-head-rerun.js +41 -0
  216. package/dist/supervision/failed-head-rerun.js.map +1 -0
  217. package/dist/supervision/focus-delivery-aggregate-phase.js +1 -1
  218. package/dist/supervision/focus-delivery-aggregate-phase.js.map +1 -1
  219. package/dist/supervision/focus-liveness.d.ts +89 -0
  220. package/dist/supervision/focus-liveness.d.ts.map +1 -0
  221. package/dist/supervision/focus-liveness.js +94 -0
  222. package/dist/supervision/focus-liveness.js.map +1 -0
  223. package/dist/supervision/focus-next-step.d.ts +175 -0
  224. package/dist/supervision/focus-next-step.d.ts.map +1 -0
  225. package/dist/supervision/focus-next-step.js +129 -0
  226. package/dist/supervision/focus-next-step.js.map +1 -0
  227. package/dist/supervision/prd-frontier-rule.d.ts +52 -0
  228. package/dist/supervision/prd-frontier-rule.d.ts.map +1 -0
  229. package/dist/supervision/prd-frontier-rule.js +51 -0
  230. package/dist/supervision/prd-frontier-rule.js.map +1 -0
  231. package/dist/supervision/prt-frontier.d.ts +22 -7
  232. package/dist/supervision/prt-frontier.d.ts.map +1 -1
  233. package/dist/supervision/prt-frontier.js +17 -7
  234. package/dist/supervision/prt-frontier.js.map +1 -1
  235. package/dist/supervision/review-loop-detector.d.ts.map +1 -1
  236. package/dist/supervision/review-loop-detector.js +2 -1
  237. package/dist/supervision/review-loop-detector.js.map +1 -1
  238. package/dist/supervision/spawn-cooldown.js +1 -1
  239. package/dist/supervision/stop-registry.d.ts +1 -0
  240. package/dist/supervision/stop-registry.d.ts.map +1 -1
  241. package/dist/supervision/stop-rows-focus-health.d.ts +14 -0
  242. package/dist/supervision/stop-rows-focus-health.d.ts.map +1 -1
  243. package/dist/supervision/stop-rows-focus-health.js +32 -0
  244. package/dist/supervision/stop-rows-focus-health.js.map +1 -1
  245. package/dist/supervision/stop-rows-spawn.d.ts +3 -2
  246. package/dist/supervision/stop-rows-spawn.d.ts.map +1 -1
  247. package/dist/supervision/stop-rows-spawn.js +9 -6
  248. package/dist/supervision/stop-rows-spawn.js.map +1 -1
  249. package/dist/supervision/team-work.js +1 -1
  250. package/dist/supervision/team-work.js.map +1 -1
  251. package/dist/testing/fixtures/api-client.js +1 -1
  252. package/dist/testing/fixtures/index.js +1 -1
  253. package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -1
  254. package/dist/testing/fixtures/migration-namespace-repo.js +1 -0
  255. package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -1
  256. package/dist/testing/fixtures/pending-spawn-world.d.ts +24 -0
  257. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  258. package/dist/testing/fixtures/pending-spawn-world.js +47 -20
  259. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  260. package/dist/testing/fixtures/recording-api-client.js +1 -1
  261. package/dist/testing/fixtures/review-loop.d.ts.map +1 -1
  262. package/dist/testing/fixtures/review-loop.js +2 -0
  263. package/dist/testing/fixtures/review-loop.js.map +1 -1
  264. package/dist/testing/fixtures/verification-deps.d.ts +27 -0
  265. package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
  266. package/dist/testing/fixtures/verification-deps.js +77 -1
  267. package/dist/testing/fixtures/verification-deps.js.map +1 -1
  268. package/dist/testing/fixtures/vitest-failure-log.d.ts.map +1 -1
  269. package/dist/testing/fixtures/vitest-failure-log.js +1 -0
  270. package/dist/testing/fixtures/vitest-failure-log.js.map +1 -1
  271. package/dist/tower/tower-admission.d.ts +46 -9
  272. package/dist/tower/tower-admission.d.ts.map +1 -1
  273. package/dist/tower/tower-admission.js +59 -9
  274. package/dist/tower/tower-admission.js.map +1 -1
  275. package/dist/tower/tower-graph.d.ts.map +1 -1
  276. package/dist/tower/tower-graph.js +2 -1
  277. package/dist/tower/tower-graph.js.map +1 -1
  278. package/dist/tower/tower-heartbeat-status.d.ts +1 -1
  279. package/dist/tower/tower-heartbeat-status.d.ts.map +1 -1
  280. package/dist/tower/tower-heartbeat-status.js.map +1 -1
  281. package/dist/tower/tower-pass-standing.d.ts +11 -0
  282. package/dist/tower/tower-pass-standing.d.ts.map +1 -1
  283. package/dist/tower/tower-pass-standing.js +33 -1
  284. package/dist/tower/tower-pass-standing.js.map +1 -1
  285. package/dist/tower/tower-pass.d.ts +28 -4
  286. package/dist/tower/tower-pass.d.ts.map +1 -1
  287. package/dist/tower/tower-pass.js +60 -18
  288. package/dist/tower/tower-pass.js.map +1 -1
  289. package/dist/tower/tower-spawn-intent.d.ts.map +1 -1
  290. package/dist/tower/tower-spawn-intent.js +3 -2
  291. package/dist/tower/tower-spawn-intent.js.map +1 -1
  292. package/dist/tower/tower-supervisor-history.d.ts.map +1 -1
  293. package/dist/tower/tower-supervisor-history.js +2 -1
  294. package/dist/tower/tower-supervisor-history.js.map +1 -1
  295. package/dist/tower/tower-supervisor-prompt.d.ts.map +1 -1
  296. package/dist/tower/tower-supervisor-prompt.js +40 -8
  297. package/dist/tower/tower-supervisor-prompt.js.map +1 -1
  298. package/dist/tower/tower-supervisor-session.d.ts.map +1 -1
  299. package/dist/tower/tower-supervisor-session.js +1 -0
  300. package/dist/tower/tower-supervisor-session.js.map +1 -1
  301. package/dist/types/issue-status.d.ts.map +1 -1
  302. package/dist/types/issue-status.js +6 -1
  303. package/dist/types/issue-status.js.map +1 -1
  304. package/dist/verify/attribution/code-failure-evidence.d.ts +77 -0
  305. package/dist/verify/attribution/code-failure-evidence.d.ts.map +1 -0
  306. package/dist/verify/attribution/code-failure-evidence.js +92 -0
  307. package/dist/verify/attribution/code-failure-evidence.js.map +1 -0
  308. package/dist/verify/attribution/verification-attribution.d.ts +18 -0
  309. package/dist/verify/attribution/verification-attribution.d.ts.map +1 -1
  310. package/dist/verify/attribution/verification-attribution.js +49 -2
  311. package/dist/verify/attribution/verification-attribution.js.map +1 -1
  312. package/dist/verify/attribution/verification-baseline.d.ts.map +1 -1
  313. package/dist/verify/attribution/verification-baseline.js +1 -0
  314. package/dist/verify/attribution/verification-baseline.js.map +1 -1
  315. package/dist/verify/attribution/verification-diagnostics.d.ts +10 -0
  316. package/dist/verify/attribution/verification-diagnostics.d.ts.map +1 -1
  317. package/dist/verify/attribution/verification-diagnostics.js +39 -10
  318. package/dist/verify/attribution/verification-diagnostics.js.map +1 -1
  319. package/dist/verify/deterministic-gate/verification-deterministic.d.ts +19 -0
  320. package/dist/verify/deterministic-gate/verification-deterministic.d.ts.map +1 -1
  321. package/dist/verify/deterministic-gate/verification-deterministic.js +1 -1
  322. package/dist/verify/deterministic-gate/verification-deterministic.js.map +1 -1
  323. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  324. package/dist/verify/engine/verification-commit-sharing.js +36 -4
  325. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  326. package/dist/verify/engine/verification-deps.d.ts +7 -0
  327. package/dist/verify/engine/verification-deps.d.ts.map +1 -1
  328. package/dist/verify/engine/verification-engine.d.ts.map +1 -1
  329. package/dist/verify/engine/verification-engine.js +6 -3
  330. package/dist/verify/engine/verification-engine.js.map +1 -1
  331. package/dist/verify/escaped-tests/escaped-test-run.d.ts +5 -1
  332. package/dist/verify/escaped-tests/escaped-test-run.d.ts.map +1 -1
  333. package/dist/verify/escaped-tests/escaped-test-run.js +24 -2
  334. package/dist/verify/escaped-tests/escaped-test-run.js.map +1 -1
  335. package/dist/verify/failing-test-rerun/failing-test-retry.d.ts +4 -1
  336. package/dist/verify/failing-test-rerun/failing-test-retry.d.ts.map +1 -1
  337. package/dist/verify/failing-test-rerun/failing-test-retry.js.map +1 -1
  338. package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
  339. package/dist/verify/gate-verdicts/commit-verdict-record.js.map +1 -1
  340. package/dist/verify/gate-verdicts/no-verdict-record.d.ts +27 -3
  341. package/dist/verify/gate-verdicts/no-verdict-record.d.ts.map +1 -1
  342. package/dist/verify/gate-verdicts/no-verdict-record.js +36 -6
  343. package/dist/verify/gate-verdicts/no-verdict-record.js.map +1 -1
  344. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  345. package/dist/verify/outcome-routing/verification-rework-issue.js +5 -4
  346. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  347. package/dist/verify/run-selection/default-on-guards.d.ts +15 -4
  348. package/dist/verify/run-selection/default-on-guards.d.ts.map +1 -1
  349. package/dist/verify/run-selection/default-on-guards.js +14 -4
  350. package/dist/verify/run-selection/default-on-guards.js.map +1 -1
  351. package/dist/verify/run-selection/explicit-next-step-gate.d.ts +39 -0
  352. package/dist/verify/run-selection/explicit-next-step-gate.d.ts.map +1 -0
  353. package/dist/verify/run-selection/explicit-next-step-gate.js +70 -0
  354. package/dist/verify/run-selection/explicit-next-step-gate.js.map +1 -0
  355. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts +0 -9
  356. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
  357. package/dist/verify/run-selection/pre-review-gate-dispatch.js +21 -62
  358. package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
  359. package/dist/verify/run-selection/reselection-log-line.d.ts +1 -1
  360. package/dist/verify/run-selection/reselection-log-line.d.ts.map +1 -1
  361. package/dist/verify/run-selection/reselection-log-line.js +2 -0
  362. package/dist/verify/run-selection/reselection-log-line.js.map +1 -1
  363. package/dist/verify/run-selection/verification-default-on.d.ts +32 -4
  364. package/dist/verify/run-selection/verification-default-on.d.ts.map +1 -1
  365. package/dist/verify/run-selection/verification-default-on.js +83 -19
  366. package/dist/verify/run-selection/verification-default-on.js.map +1 -1
  367. package/dist/verify/shortfalls/shortfall-park.js +1 -1
  368. package/dist/worktree/focus-worktree-state.js +1 -1
  369. package/dist/worktree/focus-worktree-state.js.map +1 -1
  370. package/docs/runbook-tower.md +33 -5
  371. package/package.json +3 -3
  372. package/dist/completion/state-cascade/review-next-step.d.ts +0 -107
  373. package/dist/completion/state-cascade/review-next-step.d.ts.map +0 -1
  374. package/dist/completion/state-cascade/review-next-step.js +0 -90
  375. package/dist/completion/state-cascade/review-next-step.js.map +0 -1
  376. package/dist/focus/failed-head-wedge.d.ts +0 -124
  377. package/dist/focus/failed-head-wedge.d.ts.map +0 -1
  378. package/dist/focus/failed-head-wedge.js +0 -120
  379. package/dist/focus/failed-head-wedge.js.map +0 -1
  380. package/dist/focus/stranded-review-reroute.d.ts +0 -70
  381. package/dist/focus/stranded-review-reroute.d.ts.map +0 -1
  382. package/dist/focus/stranded-review-reroute.js +0 -193
  383. package/dist/focus/stranded-review-reroute.js.map +0 -1
  384. package/dist/focus/uncommitted-work-backstop.d.ts +0 -115
  385. package/dist/focus/uncommitted-work-backstop.d.ts.map +0 -1
  386. package/dist/focus/uncommitted-work-backstop.js +0 -259
  387. package/dist/focus/uncommitted-work-backstop.js.map +0 -1
@@ -1,12 +1,11 @@
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/completion/state-cascade/review-next-step.test.ts,
2
+ // Pinned by: packages/daemon/src/completion/state-cascade/focus-next-step-agreement.test.ts,
3
3
  // packages/daemon/src/focus/gaps-found-hands-to-coding.test.ts,
4
4
  // packages/daemon/src/focus/held-review-window-not-stranded.test.ts,
5
5
  // packages/daemon/src/focus/parked-shortfall-spawn.test.ts,
6
6
  // packages/daemon/src/focus/pending-review-approved-head.test.ts,
7
7
  // packages/daemon/src/focus/pending-spawn-review-next-step.test.ts,
8
8
  // packages/daemon/src/focus/unchanged-reviewed-head.test.ts,
9
- // packages/daemon/src/focus/uncommitted-work-backstop.test.ts,
10
9
  // packages/daemon/src/integration/approved-head-gate-failure-respawn-regression.test.ts,
11
10
  // packages/daemon/src/integration/approved-head-hold-release-no-directive-regression.test.ts,
12
11
  // packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
@@ -16,40 +15,29 @@
16
15
  // packages/daemon/src/spawn/review-hold-park-shortfall.test.ts
17
16
  // PINNED-BY-END
18
17
  /**
19
- * Pending-spawn gate: a queued NON-review spawn directive is dropped when the
20
- * focus's next actionable step is a review pass.
18
+ * Pending-spawn gate: a queued NON-review spawn directive spawns only when the
19
+ * focus's ONE next step (supervision/focus-next-step.ts, read by
20
+ * completion/state-cascade/focus-next-step-read.ts) is a coding team. Any other
21
+ * answer -- a review, a gate run at HEAD, a hold, a merge, done -- drops it.
21
22
  *
22
23
  * processPendingSpawnFocuses (focus/focus-poller-spawn.ts) spawns a team from any
23
24
  * queued directive. A coding directive stashed by the directive executor's
24
25
  * no-active-team fallback can outlive the coding it was for: by the time it is
25
26
  * consumed, every delivery is in verify with no open work. The coding lead it
26
27
  * spawns has nothing to do, holds the focus's single team slot, and the review
27
- * the cascade requests a second later cannot spawn. The decision is the ONE
28
- * complete review-next-step decision the cascade also consumes (completion/state-cascade/review-next-step.ts
29
- * resolveReviewNextStep), derived here with review_requested_at null, so it holds
30
- * even when the directive is consumed BEFORE the window is stamped.
28
+ * the cascade requests a second later cannot spawn. The state cascade's review
29
+ * request and verify's run selection act on the same decision, so the three never
30
+ * name different steps for one state: a parked shortfall (no truthful commit for a
31
+ * coding lead until verify releases the park), a gate owed or re-run at HEAD, and
32
+ * uncommitted work in the worktree (a coding team: the review judges a HEAD the
33
+ * work is not in) are all answered there, not here.
31
34
  *
32
- * A focus with a verify delivery parked on a repeating verify shortfall and no
33
- * unparked delivery owing work (the 'parked' decision, verify/shortfalls/shortfall-park.ts)
34
- * drops a queued coding directive too: open work filed on a parked delivery is not
35
- * coding work, and a coding lead spawned onto it has nothing truthful to commit --
36
- * it stamps the work done and feeds the next identical verify failure. No coding
37
- * team spawns for it until verify re-judges a changed delivery commit set (or a
38
- * ruling) and releases the park.
39
- *
40
- * The coding respawn the daemon itself queues to finish a teamless armed focus's
41
- * UNCOMMITTED work (directive/directive-queue.ts queueDaemonCodingRespawn, purpose
42
- * 'uncommitted_work'; focus/uncommitted-work-backstop.ts) is never dropped here
43
- * either: a review judges the HEAD, and the work is not in it -- the next step is
44
- * the coding lead that commits it, whatever the deliveries' statuses say.
45
- *
46
- * A REVIEW-lineage directive is never dropped here: it is the next step. When the
47
- * deliveries or issues cannot be read, the directive is DEFERRED: it stays queued
48
- * and nothing spawns this poll. Spawning the coding lead on an unreadable state
49
- * would diverge from the cascade, which opens the review window on the delivery
50
- * census when the issue read fails -- the same mutual wait this gate exists to
51
- * prevent. Usually the deferral ends on its own: the state reads again, or the
52
- * review directive the cascade's window triggers replaces the queued entry.
35
+ * A REVIEW-lineage directive is never dropped here: the review is the next step,
36
+ * or the review gates its own spawn. When the focus state cannot be read, the
37
+ * directive is DEFERRED: it stays queued and nothing spawns this poll -- spawning
38
+ * on an unknown state is what this gate exists to prevent. Usually the deferral
39
+ * ends on its own: the state reads again, or the review directive the cascade's
40
+ * window triggers replaces the queued entry.
53
41
  *
54
42
  * The deferral is BOUNDED like every other hold on a queued directive
55
43
  * (completion/team-teardown/session-hold.ts). Its clock belongs to the queued directive
@@ -93,8 +81,7 @@ import { NO_HUMAN_ACT } from '../queries/escalations/filing-observation.js';
93
81
  import { computeCauseKey } from '../queries/escalations/cause-key.js';
94
82
  import { spoolEscalation } from '../supervision/escalation-spool.js';
95
83
  import { FAIL_STOP_EXIT_CODE } from '../daemon-state/fail-stop.js';
96
- import { resolveReviewNextStep, } from '../completion/state-cascade/review-next-step.js';
97
- import { deriveFocusDeliveryAggregatePhase } from '../supervision/focus-delivery-aggregate-phase.js';
84
+ import { describeFocusNextStep, } from '../supervision/focus-next-step.js';
98
85
  import { liveDaemonConfig as pollerConfig } from '../config/live-daemon-config.js';
99
86
  import { createLogger } from '../log/daemon-log.js';
100
87
  import { evaluateStop } from '../supervision/stop-registry.js';
@@ -130,34 +117,6 @@ export function __resetUnreadableDeferralsForTesting() {
130
117
  function asError(err) {
131
118
  return err instanceof Error ? err : new Error(String(err));
132
119
  }
133
- /** Read the shared review-next-step decision for the focus. */
134
- async function readReviewNextStep(focus, deps) {
135
- let deliveries;
136
- try {
137
- deliveries = await deps.getFocusDeliveries(focus.focus_id);
138
- }
139
- catch (err) {
140
- return { next: 'unreadable', what: 'deliveries', error: asError(err) };
141
- }
142
- const decision = await resolveReviewNextStep({
143
- // State, not stamp: review_requested_at is deliberately not an input.
144
- phase: deriveFocusDeliveryAggregatePhase({
145
- deliveries: deliveries.map((d) => ({ executionStatus: d.executionStatus ?? null })),
146
- reviewRequestedAt: null,
147
- }),
148
- deliveries,
149
- pipelineConfig: focus.pipeline_config,
150
- readIssues: () => deps.getFocusIssues(focus.focus_id),
151
- readConcernIds: () => deps.readRecordedConcernIds(focus.focus_id),
152
- });
153
- if (decision.step === 'issues_unreadable')
154
- return { next: 'unreadable', what: 'issues', error: decision.error };
155
- if (decision.step === 'concerns_unreadable')
156
- return { next: 'unreadable', what: 'concerns', error: decision.error };
157
- if (decision.step === 'review' || decision.step === 'parked')
158
- return { next: decision.step };
159
- return { next: 'coding' };
160
- }
161
120
  /**
162
121
  * The ONE escalation an expired unreadable-state deferral owes. Restoring the
163
122
  * focus-state read and re-queuing coding work are agent work (read the daemon log,
@@ -187,7 +146,7 @@ export function buildUnreadableDeferralEscalation(expiry) {
187
146
  max_ms: UNREADABLE_DEFERRAL_MAX_MS,
188
147
  },
189
148
  description: `A queued ${expiry.sessionType} spawn directive for focus "${expiry.focusName}" was deferred for ${elapsedSec}s ` +
190
- `because its ${expiry.what} could not be read to decide whether a review pass is next ` +
149
+ `because its ${expiry.what} could not be read to decide the focus's next step ` +
191
150
  `(${expiry.error.message}). The ${Math.round(UNREADABLE_DEFERRAL_MAX_MS / 1000)}s bound lapsed, so the directive ` +
192
151
  `is dropped, rather than spawned onto an unknown state, once this escalation is durable (recorded, or spooled ` +
193
152
  `locally while the escalation writer was unavailable).\n\n` +
@@ -322,7 +281,7 @@ async function deferOrExpire(focus, pending, read, deps) {
322
281
  if (hold.action === 'expire')
323
282
  return fireDeferralEscalation(focus, pending, clock, read, nowMs, deps);
324
283
  log.warn(`[focus-poller] Deferring queued ${pending.sessionType} directive for "${focus.focus_name}" -- could not read ` +
325
- `${read.what} to decide whether a review pass is next (${read.error.message}); it stays queued and is ` +
284
+ `${read.what} to decide the focus's next step (${read.error.message}); it stays queued and is ` +
326
285
  `re-read next poll (deferred ${Math.round(elapsedMs / 1000)}s of a ${Math.round(UNREADABLE_DEFERRAL_MAX_MS / 1000)}s bound)`);
327
286
  return true;
328
287
  }
@@ -337,25 +296,20 @@ async function deferOrExpire(focus, pending, read, deps) {
337
296
  */
338
297
  export async function pendingCodingSpawnSupersededByReview(focus, deps) {
339
298
  const pending = getPendingSpawnDirective(focus.focus_id);
340
- // A review is next, or the queued coding lead is the one that commits uncommitted work (module header).
341
- if (!pending || pending.lineage === 'review' || pending.purpose === 'uncommitted_work')
299
+ if (!pending || pending.lineage === 'review')
342
300
  return false;
343
- const read = await readReviewNextStep(focus, deps);
344
- if (read.next === 'unreadable')
301
+ const read = await deps.readNextStep(focus);
302
+ if (!read.readable)
345
303
  return deferOrExpire(focus, pending, read, deps);
346
304
  deferralClocks.delete(pending); // a readable poll ends this directive's deferral
347
305
  const hold = evaluateStop('review_next_step_spawn_hold', {
348
- nextStep: read.next, deferredMs: 0, maxMs: UNREADABLE_DEFERRAL_MAX_MS,
306
+ nextStep: read.next.step, deferredMs: 0, maxMs: UNREADABLE_DEFERRAL_MAX_MS,
349
307
  });
350
308
  if (hold.action === 'spawn')
351
309
  return false;
352
310
  clearPendingSpawnDirective(focus.focus_id);
353
- log.info(read.next === 'parked'
354
- ? `[focus-poller] Dropping queued ${pending.sessionType} directive for "${focus.focus_name}" -- a verify delivery is ` +
355
- `parked on a repeating verify shortfall and no unparked one owes work; a coding lead has nothing truthful to commit ` +
356
- `until verify releases the park`
357
- : `[focus-poller] Dropping queued ${pending.sessionType} directive for "${focus.focus_name}" -- every delivery is in ` +
358
- `verify with no open work and review is enabled; the next actionable step is a review pass, not a coding lead`);
311
+ log.info(`[focus-poller] Dropping queued ${pending.sessionType} directive for "${focus.focus_name}" -- the focus's next step is ` +
312
+ `${describeFocusNextStep(read.next)}, not a coding lead`);
359
313
  return true;
360
314
  }
361
315
  //# sourceMappingURL=pending-spawn-review-next-step.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pending-spawn-review-next-step.js","sourceRoot":"","sources":["../../src/focus/pending-spawn-review-next-step.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pending-spawn-review-next-step.js","sourceRoot":"","sources":["../../src/focus/pending-spawn-review-next-step.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ready-focus-spawn-action.d.ts","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAA4C,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAExI,wEAAwE;AACxE,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,iFAAiF;AACjF,KAAK,iBAAiB,GAAG;IAAE,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,+BAA+B,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjH;;;;;;GAMG;AACH,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEjH;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,6BAA6B,GAAG,uBAAuB,CAAC,EACvF,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,GAChE,OAAO,CAAC,cAAc,CAAC,CAezB;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,EAC9C,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,GAChE,OAAO,CAAC,gBAAgB,CAAC,CAM3B;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAOvE"}
1
+ {"version":3,"file":"ready-focus-spawn-action.d.ts","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAIA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACzG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAyC,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAErI,wEAAwE;AACxE,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,iFAAiF;AACjF,KAAK,iBAAiB,GAAG;IAAE,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,+BAA+B,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEjH;;;;;;GAMG;AACH,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,GAAG,cAAc,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAEjH;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,6BAA6B,GAAG,uBAAuB,CAAC,EACvF,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,GAChE,OAAO,CAAC,cAAc,CAAC,CAezB;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,iBAAiB,GAAG,mBAAmB,EAC9C,IAAI,EAAE,SAAS,GAAG,SAAS,EAC3B,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,uBAAuB,KAAK,OAAO,CAAC,OAAO,CAAC,GAChE,OAAO,CAAC,gBAAgB,CAAC,CAM3B;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB,CAOvE"}
@@ -5,7 +5,7 @@ import { decideFocusSpawn } from './focus-spawn-decision.js';
5
5
  import { hasActiveTeam, getActiveTeamCount } from '../daemon-state/focus-team-state.js';
6
6
  import { isNextSpawnInCooldown } from '../spawn/index.js';
7
7
  import { installedDaemonContexts } from './daemon-contexts.js';
8
- import { decideTowerAdmission, noteTowerAdmission } from '../tower/tower-admission.js';
8
+ import { admitThroughTower, noteTowerAdmission } from '../tower/tower-admission.js';
9
9
  /**
10
10
  * Read one ready focus's spawn-gate inputs from live state -- every gate but the
11
11
  * tower's (towerHolds is left unset). The ONE read both the spawn pass
@@ -31,7 +31,7 @@ export async function readReadyFocusGate(focus, role, deps, cfg, readCapHold) {
31
31
  }
32
32
  export async function resolveReadyFocusSpawnAction(focus, role, deps, cfg, readCapHold) {
33
33
  const nowMs = Date.now();
34
- const tower = decideTowerAdmission(focus, deps.tower, nowMs);
34
+ const tower = await admitThroughTower(focus, deps.tower, nowMs);
35
35
  const action = decideFocusSpawn({ ...(await readReadyFocusGate(focus, role, deps, cfg, readCapHold)), towerHolds: tower.holds });
36
36
  noteTowerAdmission(focus, tower, towerOutcome(action), nowMs);
37
37
  return action;
@@ -1 +1 @@
1
- {"version":3,"file":"ready-focus-spawn-action.js","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,yEAAyE;AACzE,gBAAgB;AAQhB,OAAO,EAAE,gBAAgB,EAA8C,MAAM,2BAA2B,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAuB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAmD,MAAM,6BAA6B,CAAC;AAiBxI;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAwB,EACxB,IAA2B,EAC3B,IAAuF,EACvF,GAAiB,EACjB,WAAiE;IAEjE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,yBAAyB,IAAI,IAAI,IAAI,KAAK,CAAC,+BAA+B,KAAK,IAAI,CAAC;IACzG,OAAO;QACL,OAAO,EAAE,IAAI,KAAK,SAAS;QAC3B,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC;QACrC,kBAAkB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,WAAW,CAAC,KAAK,CAAC;QACvE,GAAG,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACpD,8FAA8F;QAC9F,MAAM;QACN,WAAW,EAAE,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QACxF,eAAe,EAAE,MAAM,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,cAAc,CAAC;QAClG,eAAe,EAAE,kBAAkB,EAAE;QACrC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAA8C,EAC9C,IAA2B,EAC3B,IAAwB,EACxB,GAAiB,EACjB,WAAiE;IAEjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACjI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,iBAAiB,CAAC,CAAC,OAAO,YAAY,CAAC;QAC5C,KAAK,eAAe,CAAC,CAAC,OAAO,UAAU,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,aAAa,CAAC;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ready-focus-spawn-action.js","sourceRoot":"","sources":["../../src/focus/ready-focus-spawn-action.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,yEAAyE;AACzE,gBAAgB;AAQhB,OAAO,EAAE,gBAAgB,EAA8C,MAAM,2BAA2B,CAAC;AAEzG,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGxF,OAAO,EAAE,qBAAqB,EAAuB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAmD,MAAM,6BAA6B,CAAC;AAiBrI;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAwB,EACxB,IAA2B,EAC3B,IAAuF,EACvF,GAAiB,EACjB,WAAiE;IAEjE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,yBAAyB,IAAI,IAAI,IAAI,KAAK,CAAC,+BAA+B,KAAK,IAAI,CAAC;IACzG,OAAO;QACL,OAAO,EAAE,IAAI,KAAK,SAAS;QAC3B,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC;QACrC,kBAAkB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,WAAW,CAAC,KAAK,CAAC;QACvE,GAAG,CAAC,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QACpD,8FAA8F;QAC9F,MAAM;QACN,WAAW,EAAE,MAAM,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QACxF,eAAe,EAAE,MAAM,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,cAAc,CAAC;QAClG,eAAe,EAAE,kBAAkB,EAAE;QACrC,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,KAA8C,EAC9C,IAA2B,EAC3B,IAAwB,EACxB,GAAiB,EACjB,WAAiE;IAEjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACjI,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,MAAwB;IACnD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC7B,KAAK,iBAAiB,CAAC,CAAC,OAAO,YAAY,CAAC;QAC5C,KAAK,eAAe,CAAC,CAAC,OAAO,UAAU,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,aAAa,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ import type { FocusNextStepReader, NextStepFocusRow } from '../supervision/focus-next-step.js';
2
+ /** The re-fire gate's reads (the root's `reviewRefire` binding). */
3
+ export interface ReviewRefireDeps {
4
+ /** The focus's deliveries with their gate_state: the gate-verdict hold read. */
5
+ getFocusDeliveries: (focusId: string) => Promise<ReadonlyArray<{
6
+ id: string;
7
+ executionStatus?: string | null;
8
+ gateState?: unknown;
9
+ }>>;
10
+ readNextStep: FocusNextStepReader;
11
+ }
12
+ /** The focus slice the gate reads. */
13
+ export interface ReviewRefireFocus extends NextStepFocusRow {
14
+ focus_name: string;
15
+ operator_stopped_at?: string | null;
16
+ }
17
+ /**
18
+ * The gate-verdict hold read, tri-state: 'held' when some verify delivery carries
19
+ * the commit-verdict hold marker the review exit wrote (delivery/commit-verdict-hold.ts),
20
+ * 'clear' when the deliveries read and none does, 'unreadable' when the read failed.
21
+ */
22
+ export declare function readReviewWindowGateHold(focus: Pick<ReviewRefireFocus, 'focus_id' | 'focus_name'>, deps: Pick<ReviewRefireDeps, 'getFocusDeliveries'>): Promise<'held' | 'clear' | 'unreadable'>;
23
+ /** True = re-fire the review directive (module header). Never throws. */
24
+ export declare function reviewMayRefire(focus: ReviewRefireFocus, stageName: string | undefined, hasActiveTeam: boolean, deps: ReviewRefireDeps): Promise<boolean>;
25
+ //# sourceMappingURL=review-refire-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-refire-gate.d.ts","sourceRoot":"","sources":["../../src/focus/review-refire-gate.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAK/F,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,gFAAgF;IAChF,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;IACtI,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,sCAAsC;AACtC,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,YAAY,CAAC,EACzD,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,GACjD,OAAO,CAAC,MAAM,GAAG,OAAO,GAAG,YAAY,CAAC,CAO1C;AAED,yEAAyE;AACzE,wBAAsB,eAAe,CACnC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,aAAa,EAAE,OAAO,EACtB,IAAI,EAAE,gBAAgB,GACrB,OAAO,CAAC,OAAO,CAAC,CAelB"}
@@ -0,0 +1,68 @@
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/focus-liveness-pass.test.ts,
3
+ // packages/daemon/src/focus/held-review-window-not-stranded.test.ts,
4
+ // packages/daemon/src/focus/stranded-review-refire-bound.test.ts,
5
+ // packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
6
+ // packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts
7
+ // PINNED-BY-END
8
+ /**
9
+ * Whether the stranded-review re-fire queues the review directive again for a
10
+ * focus whose review stage was already processed (focus/directive-executor.ts
11
+ * checkDirectives).
12
+ *
13
+ * The re-fire recovers a review a crash or teardown dropped: a window open, no
14
+ * team. It re-fires only when, in order:
15
+ * 1. the pure rule holds (directive/phase-sync.ts shouldRefireStrandedReview):
16
+ * a review stage, a window, no live team, no operator stop, and no gate
17
+ * verdict the window is HELD for -- read here, fail closed: an unreadable
18
+ * hold reads held, so the release pass (commit-verdict-release.ts) routes it;
19
+ * 2. the liveness detector has not reported this focus stalled
20
+ * (supervision/focus-liveness.ts): a review that started LIVENESS_STALL_STARTS
21
+ * times on an unchanged (HEAD, window) without moving the focus is not queued
22
+ * again -- its observation is the route, and a new commit, step or window
23
+ * starts over;
24
+ * 3. the focus's ONE next step (supervision/focus-next-step.ts) is a review: a
25
+ * failed gate at HEAD is its coding team's rework, a verdict still owed is a
26
+ * gate run -- re-queueing the review there would re-judge a commit nothing
27
+ * changed.
28
+ *
29
+ * @module focus/review-refire-gate
30
+ */
31
+ import { shouldRefireStrandedReview } from '../directive/phase-sync.js';
32
+ import { commitVerdictHeldDeliveryIds } from '../delivery/commit-verdict-hold.js';
33
+ import { focusLivenessStalled } from '../supervision/focus-liveness.js';
34
+ import { createLogger } from '../log/daemon-log.js';
35
+ const log = createLogger({ module: 'directive-executor' });
36
+ /**
37
+ * The gate-verdict hold read, tri-state: 'held' when some verify delivery carries
38
+ * the commit-verdict hold marker the review exit wrote (delivery/commit-verdict-hold.ts),
39
+ * 'clear' when the deliveries read and none does, 'unreadable' when the read failed.
40
+ */
41
+ export async function readReviewWindowGateHold(focus, deps) {
42
+ try {
43
+ return commitVerdictHeldDeliveryIds(await deps.getFocusDeliveries(focus.focus_id)).size > 0 ? 'held' : 'clear';
44
+ }
45
+ catch (err) {
46
+ log.debug(`[directive-executor] gate-verdict hold unreadable for "${focus.focus_name}": ${err.message}`);
47
+ return 'unreadable';
48
+ }
49
+ }
50
+ /** True = re-fire the review directive (module header). Never throws. */
51
+ export async function reviewMayRefire(focus, stageName, hasActiveTeam, deps) {
52
+ const rule = shouldRefireStrandedReview({
53
+ stageName,
54
+ reviewRequestedAt: focus.review_requested_at,
55
+ hasActiveTeam,
56
+ operatorStopped: !!focus.operator_stopped_at,
57
+ awaitingGateVerdict: (await readReviewWindowGateHold(focus, deps)) !== 'clear',
58
+ });
59
+ if (!rule)
60
+ return false;
61
+ if (focusLivenessStalled(focus.focus_id)) {
62
+ log.info(`[directive-executor] Not re-firing the review for "${focus.focus_name}": the liveness detector reported it stalled on this HEAD and window`);
63
+ return false;
64
+ }
65
+ const read = await deps.readNextStep(focus).catch(() => null);
66
+ return read?.readable === true && read.next.step === 'review';
67
+ }
68
+ //# sourceMappingURL=review-refire-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-refire-gate.js","sourceRoot":"","sources":["../../src/focus/review-refire-gate.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,2FAA2F;AAC3F,kFAAkF;AAClF,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAe3D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAyD,EACzD,IAAkD;IAElD,IAAI,CAAC;QACH,OAAO,4BAA4B,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,0DAA0D,KAAK,CAAC,UAAU,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpH,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAwB,EACxB,SAA6B,EAC7B,aAAsB,EACtB,IAAsB;IAEtB,MAAM,IAAI,GAAG,0BAA0B,CAAC;QACtC,SAAS;QACT,iBAAiB,EAAE,KAAK,CAAC,mBAAmB;QAC5C,aAAa;QACb,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB;QAC5C,mBAAmB,EAAE,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO;KAC/E,CAAC,CAAC;IACH,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,sDAAsD,KAAK,CAAC,UAAU,sEAAsE,CAAC,CAAC;QACvJ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,IAAI,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AAChE,CAAC"}
@@ -7,15 +7,13 @@
7
7
  * 2. releaseCommitVerdictHolds: a review exit held on its commit's gate verdict
8
8
  * is replayed once that verdict lands (held re-work: once the run is over),
9
9
  * or its held evidence is dropped when HEAD moved;
10
- * 3. fileReworkForFailedHeadWedges: an armed focus left with a FAILED gate
11
- * verdict at its head and nothing to run (no review window, no owed work, no
12
- * live team) gets the rework Bug for it (focus/failed-head-wedge.ts). It runs
13
- * after the release pass, so a held exit the release routes this poll is
14
- * never read as a wedge;
15
- * 4. recoverUncommittedWork: an armed focus left with uncommitted work in its
16
- * worktree and no live team gets one coding respawn to finish it, then a
17
- * worktree-dirty record naming the paths (focus/uncommitted-work-backstop.ts);
18
- * 5. reopenFalsifiedDoneDeliveries: a done delivery carrying an open Bug that
10
+ * 3. detectFocusLivenessStalls: an armed focus whose one next step names an
11
+ * actor that does not move it -- a coding team, a gate run, a review -- gets
12
+ * a coding respawn when that actor is a coding team that never started, and
13
+ * ONE agent-resolvable observation at the stall (focus/focus-liveness-pass.ts).
14
+ * It runs after the release pass, so a held exit the release routes this poll
15
+ * is never read as a stall;
16
+ * 4. reopenFalsifiedDoneDeliveries: a done delivery carrying an open Bug that
19
17
  * names the met effects it falsifies re-opens to verify_failed -- verify
20
18
  * was wrong (verify/outcome-routing/falsified-effect-reopen.ts).
21
19
  *
@@ -36,8 +34,7 @@ import type { DaemonConfig } from '../types/index.js';
36
34
  export interface VerifyRoutingPasses {
37
35
  checkVerifyDeliveriesForOpenIssues: (config: DaemonConfig) => Promise<void>;
38
36
  releaseCommitVerdictHolds: (config: DaemonConfig) => Promise<unknown>;
39
- fileReworkForFailedHeadWedges: (config: DaemonConfig) => Promise<unknown>;
40
- recoverUncommittedWork: (config: DaemonConfig) => Promise<unknown>;
37
+ detectFocusLivenessStalls: (config: DaemonConfig) => Promise<unknown>;
41
38
  reopenFalsifiedDoneDeliveries: (config: DaemonConfig) => Promise<unknown>;
42
39
  }
43
40
  /** Run the verify-routing phase for one product-scoped config, over the given passes. */
@@ -1 +1 @@
1
- {"version":3,"file":"verify-routing-passes.d.ts","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,kCAAkC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,6BAA6B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,sBAAsB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,6BAA6B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,yFAAyF;AACzF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAMf"}
1
+ {"version":3,"file":"verify-routing-passes.d.ts","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,kCAAkC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,6BAA6B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,yFAAyF;AACzF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -7,8 +7,7 @@
7
7
  export async function runVerifyRoutingPasses(config, passes) {
8
8
  await passes.checkVerifyDeliveriesForOpenIssues(config);
9
9
  await passes.releaseCommitVerdictHolds(config);
10
- await passes.fileReworkForFailedHeadWedges(config);
11
- await passes.recoverUncommittedWork(config);
10
+ await passes.detectFocusLivenessStalls(config);
12
11
  await passes.reopenFalsifiedDoneDeliveries(config);
13
12
  }
14
13
  //# sourceMappingURL=verify-routing-passes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-routing-passes.js","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,6DAA6D;AAC7D,0EAA0E;AAC1E,gBAAgB;AA+ChB,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,MAA2B;IAE3B,MAAM,MAAM,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"verify-routing-passes.js","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,6DAA6D;AAC7D,0EAA0E;AAC1E,gBAAgB;AA4ChB,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,MAA2B;IAE3B,MAAM,MAAM,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC"}
package/dist/git/types.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 22 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/git/types.ts
2
+ // Pinned by: 23 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/git/types.ts
3
3
  // PINNED-BY-END
4
4
  /**
5
5
  * Shared types and utilities for the git subsystem.
@@ -0,0 +1,102 @@
1
+ /**
2
+ * A refused frontier arm that no scoping agent can fix reaches the machine lane.
3
+ *
4
+ * WHY IT EXISTS. The frontier records every refused arm on the focus Debug tab
5
+ * (./arm-refusal.ts) and retries it each tick. That is enough for the refusal
6
+ * the record was written for -- `arm_criteria_required`, fixed by the tree
7
+ * restatement the re-spawned scoping agent writes. It is not enough for the
8
+ * rest: `prd_member_focus` from a daemon older than the refusal, a
9
+ * `daemon_credential_required`, a frontier-rule disagreement answered as a
10
+ * `state_conflict`, an opaque `backend_error`. No agent the frontier spawns can
11
+ * fix those, so without this a refused arm waits on the Debug tab until someone
12
+ * reads it. History: docs/daemon/history-platform.md (prd/arm-refusal-streak.ts).
13
+ *
14
+ * WHAT IT DOES. Per focus it counts consecutive refused arms carrying the SAME
15
+ * refusal code, with no successful arm between them. A different code starts a
16
+ * new streak; a successful arm ends it. When a streak of any code other than
17
+ * `arm_criteria_required` reaches the bound it files ONE agent_resolvable
18
+ * observation, cause-keyed on (focus, code) through the cause-keyed filer, so a
19
+ * re-observation while it is open is suppressed. It reads the filer's result:
20
+ * only a filing that left the observation on record (`observationRecorded`)
21
+ * ends the attempts -- a filing the server refused is re-sent, unchanged, on
22
+ * every later refusal until one is recorded. It names the focus, the PRD,
23
+ * the refusal code and the daemon version. A successful arm resolves any
24
+ * observation this process filed for the focus. The Debug-tab record is
25
+ * untouched: this is added beside it, not instead of it.
26
+ *
27
+ * A daemon restart forgets the counts (the streak is re-earned, and the
28
+ * cause-keyed filer suppresses a second row while the first is open).
29
+ *
30
+ * NEVER THROWS into the tick: a filing, list or resolve failure is logged and
31
+ * retried on the next report. Production I/O is bound at the composition root
32
+ * (composition/runtime-prd-context.ts).
33
+ *
34
+ * @module prd/arm-refusal-streak
35
+ */
36
+ import type { IncidentRow } from '../queries/escalations/incident-record.js';
37
+ import type { FileEscalationIdempotentParams, FileEscalationIdempotentResult } from '../supervision/escalation-suppression.js';
38
+ import { type ArmFailure } from './arm-refusal.js';
39
+ /** Consecutive refused arms of one code, with no success between, that file the observation. */
40
+ export declare const ARM_REFUSAL_OBSERVATION_THRESHOLD = 5;
41
+ /** The cause-key kind every frontier arm-refusal observation carries. */
42
+ export declare const ARM_REFUSAL_CAUSE_KIND = "prd_frontier_arm_refused";
43
+ /** The code a refusal that carried none is counted under. */
44
+ export declare const UNCODED_REFUSAL = "uncoded";
45
+ /** One refused frontier arm, as the streak counts it. */
46
+ export interface RefusedArm {
47
+ focusId: string;
48
+ /** The overcome node whose focus this is. */
49
+ nodeId: string;
50
+ prdId: string;
51
+ prdTitle: string;
52
+ /** The PRD's product, stamped as the observation's provenance. */
53
+ productId: string | null;
54
+ failure: ArmFailure;
55
+ }
56
+ /** What the frontier reports about each arm it attempts. */
57
+ export interface ArmRefusalStreakReporter {
58
+ recordRefusal(arm: RefusedArm): Promise<void>;
59
+ recordSuccess(focusId: string): Promise<void>;
60
+ }
61
+ /** The tracker's I/O and bound, all required (production: composition/runtime-prd-context.ts). */
62
+ export interface ArmRefusalStreakDeps {
63
+ fileObservation: (params: FileEscalationIdempotentParams) => Promise<FileEscalationIdempotentResult>;
64
+ listOpenEscalations: () => Promise<IncidentRow[]>;
65
+ resolveEscalation: (escalationId: string, notes: string) => Promise<void>;
66
+ organizationId: () => string | Promise<string>;
67
+ /** The running daemon's version -- the fact an operator needs for a deploy-order refusal. */
68
+ daemonVersion: () => string;
69
+ threshold: number;
70
+ }
71
+ /** The refusal code a failure is counted under. */
72
+ export declare function refusalCodeOf(failure: ArmFailure): string;
73
+ /** Does a streak of this code ever file? The criteria refusal is the scoping agent's to fix. */
74
+ export declare function refusalCodeFiles(code: string): boolean;
75
+ /** The cause key of the observation for one (focus, refusal code). */
76
+ export declare function armRefusalCauseKey(focusId: string, code: string): string;
77
+ /**
78
+ * Did this filing leave the observation on record? A new row, a correlation
79
+ * onto an open incident row, or an open/dismissed row of the same cause key that
80
+ * suppressed it all do. A filing the server REFUSED did not -- whether or not its
81
+ * refusal record landed -- nor did one that reports nothing at all, so the
82
+ * streak keeps retrying it.
83
+ */
84
+ export declare function observationRecorded(result: FileEscalationIdempotentResult): boolean;
85
+ export declare class ArmRefusalStreakTracker implements ArmRefusalStreakReporter {
86
+ private readonly io;
87
+ private readonly streaks;
88
+ /** Cause keys this process recorded per focus, resolved on the focus's next successful arm. */
89
+ private readonly filedKeys;
90
+ constructor(io: ArmRefusalStreakDeps);
91
+ /** The current streak for a focus (read-only view, for tests and logs). */
92
+ streakOf(focusId: string): {
93
+ code: string;
94
+ consecutive: number;
95
+ recorded: boolean;
96
+ } | null;
97
+ recordRefusal(arm: RefusedArm): Promise<void>;
98
+ recordSuccess(focusId: string): Promise<void>;
99
+ }
100
+ /** The observation for one streak. PURE. */
101
+ export declare function buildObservation(arm: RefusedArm, code: string, causeKey: string, consecutive: number, daemonVersion: string, organizationId: string): FileEscalationIdempotentParams;
102
+ //# sourceMappingURL=arm-refusal-streak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arm-refusal-streak.d.ts","sourceRoot":"","sources":["../../src/prd/arm-refusal-streak.ts"],"names":[],"mappings":"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"}