@telora/daemon 0.22.189 → 0.22.226

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 (376) hide show
  1. package/build-info.json +6 -3
  2. package/dist/backends/index.d.ts.map +1 -1
  3. package/dist/backends/index.js +5 -1
  4. package/dist/backends/index.js.map +1 -1
  5. package/dist/completion/advancement-stall-watchdog.d.ts.map +1 -1
  6. package/dist/completion/advancement-stall-watchdog.js +6 -2
  7. package/dist/completion/advancement-stall-watchdog.js.map +1 -1
  8. package/dist/completion/completion-decision.d.ts +10 -1
  9. package/dist/completion/completion-decision.d.ts.map +1 -1
  10. package/dist/completion/completion-decision.js +1 -1
  11. package/dist/completion/completion-decision.js.map +1 -1
  12. package/dist/completion/completion-fact-readers.d.ts +35 -0
  13. package/dist/completion/completion-fact-readers.d.ts.map +1 -0
  14. package/dist/completion/completion-fact-readers.js +70 -0
  15. package/dist/completion/completion-fact-readers.js.map +1 -0
  16. package/dist/completion/delivery-advancement-guard.d.ts +31 -16
  17. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  18. package/dist/completion/delivery-advancement-guard.js +22 -37
  19. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  20. package/dist/completion/detector.d.ts.map +1 -1
  21. package/dist/completion/detector.js +3 -1
  22. package/dist/completion/detector.js.map +1 -1
  23. package/dist/completion/event-dep-defaults.d.ts +27 -0
  24. package/dist/completion/event-dep-defaults.d.ts.map +1 -0
  25. package/dist/completion/event-dep-defaults.js +30 -0
  26. package/dist/completion/event-dep-defaults.js.map +1 -0
  27. package/dist/completion/event-phases.d.ts +19 -8
  28. package/dist/completion/event-phases.d.ts.map +1 -1
  29. package/dist/completion/event-phases.js +72 -101
  30. package/dist/completion/event-phases.js.map +1 -1
  31. package/dist/completion/event.d.ts +44 -9
  32. package/dist/completion/event.d.ts.map +1 -1
  33. package/dist/completion/event.js +36 -27
  34. package/dist/completion/event.js.map +1 -1
  35. package/dist/completion/index.js +1 -1
  36. package/dist/completion/progress-snapshot.d.ts +13 -9
  37. package/dist/completion/progress-snapshot.d.ts.map +1 -1
  38. package/dist/completion/progress-snapshot.js +16 -13
  39. package/dist/completion/progress-snapshot.js.map +1 -1
  40. package/dist/completion/reengagement-redrive.d.ts +8 -1
  41. package/dist/completion/reengagement-redrive.d.ts.map +1 -1
  42. package/dist/completion/reengagement-redrive.js +16 -2
  43. package/dist/completion/reengagement-redrive.js.map +1 -1
  44. package/dist/completion/session-hold.d.ts +13 -1
  45. package/dist/completion/session-hold.d.ts.map +1 -1
  46. package/dist/completion/session-hold.js +18 -0
  47. package/dist/completion/session-hold.js.map +1 -1
  48. package/dist/completion/state-cascade.d.ts.map +1 -1
  49. package/dist/completion/state-cascade.js +11 -19
  50. package/dist/completion/state-cascade.js.map +1 -1
  51. package/dist/completion/team-phase.d.ts.map +1 -1
  52. package/dist/completion/team-phase.js +1 -0
  53. package/dist/completion/team-phase.js.map +1 -1
  54. package/dist/completion/team-progress-measure.d.ts +70 -0
  55. package/dist/completion/team-progress-measure.d.ts.map +1 -0
  56. package/dist/completion/team-progress-measure.js +285 -0
  57. package/dist/completion/team-progress-measure.js.map +1 -0
  58. package/dist/completion/team-stillness.d.ts +76 -0
  59. package/dist/completion/team-stillness.d.ts.map +1 -0
  60. package/dist/completion/team-stillness.js +96 -0
  61. package/dist/completion/team-stillness.js.map +1 -0
  62. package/dist/completion/unclaimed-migration-notice-phase.d.ts +97 -0
  63. package/dist/completion/unclaimed-migration-notice-phase.d.ts.map +1 -0
  64. package/dist/completion/unclaimed-migration-notice-phase.js +270 -0
  65. package/dist/completion/unclaimed-migration-notice-phase.js.map +1 -0
  66. package/dist/completion/worker-wait.d.ts +84 -0
  67. package/dist/completion/worker-wait.d.ts.map +1 -0
  68. package/dist/completion/worker-wait.js +89 -0
  69. package/dist/completion/worker-wait.js.map +1 -0
  70. package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
  71. package/dist/delivery/delivery-advance-block.js +1 -2
  72. package/dist/delivery/delivery-advance-block.js.map +1 -1
  73. package/dist/directive/directive-executor.d.ts.map +1 -1
  74. package/dist/directive/directive-executor.js +1 -20
  75. package/dist/directive/directive-executor.js.map +1 -1
  76. package/dist/focus/focus-executor.d.ts +1 -0
  77. package/dist/focus/focus-executor.d.ts.map +1 -1
  78. package/dist/focus/focus-executor.js +18 -17
  79. package/dist/focus/focus-executor.js.map +1 -1
  80. package/dist/focus/focus-lifecycle.d.ts.map +1 -1
  81. package/dist/focus/focus-lifecycle.js +7 -1
  82. package/dist/focus/focus-lifecycle.js.map +1 -1
  83. package/dist/focus/focus-team-state.js +1 -1
  84. package/dist/focus/focus-worktree-state.d.ts.map +1 -1
  85. package/dist/focus/focus-worktree-state.js +2 -1
  86. package/dist/focus/focus-worktree-state.js.map +1 -1
  87. package/dist/focus/listener-spawn.d.ts.map +1 -1
  88. package/dist/focus/listener-spawn.js +5 -20
  89. package/dist/focus/listener-spawn.js.map +1 -1
  90. package/dist/focus/listener-state.d.ts.map +1 -1
  91. package/dist/focus/listener-state.js +1 -0
  92. package/dist/focus/listener-state.js.map +1 -1
  93. package/dist/focus/listener.d.ts +1 -0
  94. package/dist/focus/listener.d.ts.map +1 -1
  95. package/dist/focus/listener.js +9 -0
  96. package/dist/focus/listener.js.map +1 -1
  97. package/dist/focus/migration-claim-pass.d.ts +50 -0
  98. package/dist/focus/migration-claim-pass.d.ts.map +1 -0
  99. package/dist/focus/migration-claim-pass.js +234 -0
  100. package/dist/focus/migration-claim-pass.js.map +1 -0
  101. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  102. package/dist/focus/pending-spawn-pass-deps.js +2 -1
  103. package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
  104. package/dist/focus/team-actionable-work.d.ts +21 -0
  105. package/dist/focus/team-actionable-work.d.ts.map +1 -1
  106. package/dist/focus/team-actionable-work.js +3 -0
  107. package/dist/focus/team-actionable-work.js.map +1 -1
  108. package/dist/git/focus-integration-sync.d.ts +42 -4
  109. package/dist/git/focus-integration-sync.d.ts.map +1 -1
  110. package/dist/git/focus-integration-sync.js +53 -9
  111. package/dist/git/focus-integration-sync.js.map +1 -1
  112. package/dist/git/types.d.ts.map +1 -1
  113. package/dist/git/types.js +4 -1
  114. package/dist/git/types.js.map +1 -1
  115. package/dist/loops/llm-client.d.ts.map +1 -1
  116. package/dist/loops/llm-client.js +11 -1
  117. package/dist/loops/llm-client.js.map +1 -1
  118. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  119. package/dist/merge/merge-back-loop.js +0 -1
  120. package/dist/merge/merge-back-loop.js.map +1 -1
  121. package/dist/migrations/migration-claim-lifecycle.d.ts +166 -0
  122. package/dist/migrations/migration-claim-lifecycle.d.ts.map +1 -0
  123. package/dist/migrations/migration-claim-lifecycle.js +198 -0
  124. package/dist/migrations/migration-claim-lifecycle.js.map +1 -0
  125. package/dist/migrations/migration-held-set.d.ts +171 -0
  126. package/dist/migrations/migration-held-set.d.ts.map +1 -0
  127. package/dist/migrations/migration-held-set.js +295 -0
  128. package/dist/migrations/migration-held-set.js.map +1 -0
  129. package/dist/migrations/migration-inventory.d.ts +187 -0
  130. package/dist/migrations/migration-inventory.d.ts.map +1 -0
  131. package/dist/migrations/migration-inventory.js +253 -0
  132. package/dist/migrations/migration-inventory.js.map +1 -0
  133. package/dist/migrations/migration-manifest.d.ts +114 -0
  134. package/dist/migrations/migration-manifest.d.ts.map +1 -0
  135. package/dist/migrations/migration-manifest.js +295 -0
  136. package/dist/migrations/migration-manifest.js.map +1 -0
  137. package/dist/prompt/team-prompt-base.js +1 -1
  138. package/dist/prompt-sections/migration-numbering-section.d.ts +58 -0
  139. package/dist/prompt-sections/migration-numbering-section.d.ts.map +1 -0
  140. package/dist/prompt-sections/migration-numbering-section.js +70 -0
  141. package/dist/prompt-sections/migration-numbering-section.js.map +1 -0
  142. package/dist/prompt-sections/migration-numbering-state.d.ts +30 -0
  143. package/dist/prompt-sections/migration-numbering-state.d.ts.map +1 -0
  144. package/dist/prompt-sections/migration-numbering-state.js +24 -0
  145. package/dist/prompt-sections/migration-numbering-state.js.map +1 -0
  146. package/dist/prompt-sections/unclaimed-migration-section.d.ts +38 -0
  147. package/dist/prompt-sections/unclaimed-migration-section.d.ts.map +1 -0
  148. package/dist/prompt-sections/unclaimed-migration-section.js +57 -0
  149. package/dist/prompt-sections/unclaimed-migration-section.js.map +1 -0
  150. package/dist/queries/claim-pass-focuses.d.ts +19 -0
  151. package/dist/queries/claim-pass-focuses.d.ts.map +1 -0
  152. package/dist/queries/claim-pass-focuses.js +72 -0
  153. package/dist/queries/claim-pass-focuses.js.map +1 -0
  154. package/dist/queries/daemon-connection.d.ts.map +1 -1
  155. package/dist/queries/daemon-connection.js +1 -0
  156. package/dist/queries/daemon-connection.js.map +1 -1
  157. package/dist/queries/deliveries.d.ts.map +1 -1
  158. package/dist/queries/deliveries.js +3 -1
  159. package/dist/queries/deliveries.js.map +1 -1
  160. package/dist/queries/delivery-gate-state.js +1 -1
  161. package/dist/queries/escalation-suppression.js +1 -1
  162. package/dist/queries/focus-discovery.d.ts +25 -2
  163. package/dist/queries/focus-discovery.d.ts.map +1 -1
  164. package/dist/queries/focus-discovery.js +16 -9
  165. package/dist/queries/focus-discovery.js.map +1 -1
  166. package/dist/queries/focus-integration-conflict.d.ts +7 -4
  167. package/dist/queries/focus-integration-conflict.d.ts.map +1 -1
  168. package/dist/queries/focus-integration-conflict.js +6 -3
  169. package/dist/queries/focus-integration-conflict.js.map +1 -1
  170. package/dist/queries/focus-unclaimed-migration.d.ts +146 -0
  171. package/dist/queries/focus-unclaimed-migration.d.ts.map +1 -0
  172. package/dist/queries/focus-unclaimed-migration.js +266 -0
  173. package/dist/queries/focus-unclaimed-migration.js.map +1 -0
  174. package/dist/queries/live-focus-branches.d.ts +32 -0
  175. package/dist/queries/live-focus-branches.d.ts.map +1 -0
  176. package/dist/queries/live-focus-branches.js +66 -0
  177. package/dist/queries/live-focus-branches.js.map +1 -0
  178. package/dist/queries/migration-claims.d.ts +25 -0
  179. package/dist/queries/migration-claims.d.ts.map +1 -0
  180. package/dist/queries/migration-claims.js +79 -0
  181. package/dist/queries/migration-claims.js.map +1 -0
  182. package/dist/queries/schemas.d.ts +17 -0
  183. package/dist/queries/schemas.d.ts.map +1 -1
  184. package/dist/queries/schemas.js +18 -1
  185. package/dist/queries/schemas.js.map +1 -1
  186. package/dist/queries/shared.js +1 -1
  187. package/dist/queries/shortfall-park-record.d.ts +6 -1
  188. package/dist/queries/shortfall-park-record.d.ts.map +1 -1
  189. package/dist/queries/shortfall-park-record.js.map +1 -1
  190. package/dist/queries/shortfall-rulings.d.ts +14 -2
  191. package/dist/queries/shortfall-rulings.d.ts.map +1 -1
  192. package/dist/queries/shortfall-rulings.js +17 -3
  193. package/dist/queries/shortfall-rulings.js.map +1 -1
  194. package/dist/queries/verification.js +1 -1
  195. package/dist/queries/verify-own-holds.d.ts.map +1 -1
  196. package/dist/queries/verify-own-holds.js +1 -0
  197. package/dist/queries/verify-own-holds.js.map +1 -1
  198. package/dist/session/session-lineage.d.ts.map +1 -1
  199. package/dist/session/session-lineage.js +3 -0
  200. package/dist/session/session-lineage.js.map +1 -1
  201. package/dist/shell/heartbeat-metadata.d.ts +48 -2
  202. package/dist/shell/heartbeat-metadata.d.ts.map +1 -1
  203. package/dist/shell/heartbeat-metadata.js +80 -3
  204. package/dist/shell/heartbeat-metadata.js.map +1 -1
  205. package/dist/shell/heartbeat.d.ts +13 -0
  206. package/dist/shell/heartbeat.d.ts.map +1 -1
  207. package/dist/shell/heartbeat.js +31 -10
  208. package/dist/shell/heartbeat.js.map +1 -1
  209. package/dist/shell/mcp-resolution.js +1 -1
  210. package/dist/shell/mcp-resolution.js.map +1 -1
  211. package/dist/shell/migration-held-set-publish.d.ts +170 -0
  212. package/dist/shell/migration-held-set-publish.d.ts.map +1 -0
  213. package/dist/shell/migration-held-set-publish.js +172 -0
  214. package/dist/shell/migration-held-set-publish.js.map +1 -0
  215. package/dist/shell/worker-pidfile.d.ts.map +1 -1
  216. package/dist/shell/worker-pidfile.js +1 -0
  217. package/dist/shell/worker-pidfile.js.map +1 -1
  218. package/dist/spawn/helpers.d.ts.map +1 -1
  219. package/dist/spawn/helpers.js +10 -1
  220. package/dist/spawn/helpers.js.map +1 -1
  221. package/dist/spawn/lead-continuation.d.ts +10 -2
  222. package/dist/spawn/lead-continuation.d.ts.map +1 -1
  223. package/dist/spawn/lead-continuation.js +39 -22
  224. package/dist/spawn/lead-continuation.js.map +1 -1
  225. package/dist/spawn/lead-launch.d.ts.map +1 -1
  226. package/dist/spawn/lead-launch.js +1 -0
  227. package/dist/spawn/lead-launch.js.map +1 -1
  228. package/dist/spawn/lead-process-ownership.d.ts.map +1 -1
  229. package/dist/spawn/lead-process-ownership.js +1 -0
  230. package/dist/spawn/lead-process-ownership.js.map +1 -1
  231. package/dist/spawn/one-shot-model.d.ts.map +1 -1
  232. package/dist/spawn/one-shot-model.js +1 -0
  233. package/dist/spawn/one-shot-model.js.map +1 -1
  234. package/dist/spawn/process-group-kill.d.ts.map +1 -1
  235. package/dist/spawn/process-group-kill.js +1 -0
  236. package/dist/spawn/process-group-kill.js.map +1 -1
  237. package/dist/spawn/process-spawn.d.ts +18 -1
  238. package/dist/spawn/process-spawn.d.ts.map +1 -1
  239. package/dist/spawn/process-spawn.js +11 -6
  240. package/dist/spawn/process-spawn.js.map +1 -1
  241. package/dist/spawn/prompt-assembly.d.ts +115 -18
  242. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  243. package/dist/spawn/prompt-assembly.js +121 -2
  244. package/dist/spawn/prompt-assembly.js.map +1 -1
  245. package/dist/spawn/spawn-and-acknowledge.d.ts +61 -0
  246. package/dist/spawn/spawn-and-acknowledge.d.ts.map +1 -0
  247. package/dist/spawn/spawn-and-acknowledge.js +117 -0
  248. package/dist/spawn/spawn-and-acknowledge.js.map +1 -0
  249. package/dist/spawn/spawn-cooldown.js +1 -1
  250. package/dist/spawn/spawn-decision.d.ts +10 -10
  251. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  252. package/dist/spawn/spawn-decision.js +33 -5
  253. package/dist/spawn/spawn-decision.js.map +1 -1
  254. package/dist/spawn/worktree-session.d.ts.map +1 -1
  255. package/dist/spawn/worktree-session.js +11 -1
  256. package/dist/spawn/worktree-session.js.map +1 -1
  257. package/dist/templates/claude-md.d.ts +1 -1
  258. package/dist/templates/claude-md.d.ts.map +1 -1
  259. package/dist/templates/claude-md.js +24 -0
  260. package/dist/templates/claude-md.js.map +1 -1
  261. package/dist/testing/fixtures/conflicting-repo.d.ts +17 -0
  262. package/dist/testing/fixtures/conflicting-repo.d.ts.map +1 -1
  263. package/dist/testing/fixtures/conflicting-repo.js +31 -0
  264. package/dist/testing/fixtures/conflicting-repo.js.map +1 -1
  265. package/dist/testing/fixtures/index.d.ts.map +1 -1
  266. package/dist/testing/fixtures/index.js +1 -2
  267. package/dist/testing/fixtures/index.js.map +1 -1
  268. package/dist/testing/fixtures/migration-namespace-repo.d.ts +63 -0
  269. package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -0
  270. package/dist/testing/fixtures/migration-namespace-repo.js +164 -0
  271. package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -0
  272. package/dist/testing/fixtures/stubborn-lead-process.d.ts.map +1 -1
  273. package/dist/testing/fixtures/stubborn-lead-process.js +1 -0
  274. package/dist/testing/fixtures/stubborn-lead-process.js.map +1 -1
  275. package/dist/types/focus.d.ts +59 -26
  276. package/dist/types/focus.d.ts.map +1 -1
  277. package/dist/types/index.js +1 -1
  278. package/dist/verify/commit-verdict-pull.d.ts +28 -3
  279. package/dist/verify/commit-verdict-pull.d.ts.map +1 -1
  280. package/dist/verify/commit-verdict-pull.js +160 -23
  281. package/dist/verify/commit-verdict-pull.js.map +1 -1
  282. package/dist/verify/credit-rearm.d.ts.map +1 -1
  283. package/dist/verify/credit-rearm.js +72 -17
  284. package/dist/verify/credit-rearm.js.map +1 -1
  285. package/dist/verify/default-on-guards.d.ts +54 -8
  286. package/dist/verify/default-on-guards.d.ts.map +1 -1
  287. package/dist/verify/default-on-guards.js +132 -17
  288. package/dist/verify/default-on-guards.js.map +1 -1
  289. package/dist/verify/explicit-rearm.d.ts.map +1 -1
  290. package/dist/verify/explicit-rearm.js +1 -0
  291. package/dist/verify/explicit-rearm.js.map +1 -1
  292. package/dist/verify/explicit-row-selection.d.ts +47 -0
  293. package/dist/verify/explicit-row-selection.d.ts.map +1 -0
  294. package/dist/verify/explicit-row-selection.js +37 -0
  295. package/dist/verify/explicit-row-selection.js.map +1 -0
  296. package/dist/verify/gate-run-registry.d.ts.map +1 -1
  297. package/dist/verify/gate-run-registry.js +2 -0
  298. package/dist/verify/gate-run-registry.js.map +1 -1
  299. package/dist/verify/no-own-delta-verdict.d.ts +16 -2
  300. package/dist/verify/no-own-delta-verdict.d.ts.map +1 -1
  301. package/dist/verify/no-own-delta-verdict.js +18 -2
  302. package/dist/verify/no-own-delta-verdict.js.map +1 -1
  303. package/dist/verify/parked-shortfall-reuse.d.ts +194 -0
  304. package/dist/verify/parked-shortfall-reuse.d.ts.map +1 -0
  305. package/dist/verify/parked-shortfall-reuse.js +310 -0
  306. package/dist/verify/parked-shortfall-reuse.js.map +1 -0
  307. package/dist/verify/reselection-log.d.ts +22 -0
  308. package/dist/verify/reselection-log.d.ts.map +1 -0
  309. package/dist/verify/reselection-log.js +87 -0
  310. package/dist/verify/reselection-log.js.map +1 -0
  311. package/dist/verify/shortfall-park.d.ts +8 -1
  312. package/dist/verify/shortfall-park.d.ts.map +1 -1
  313. package/dist/verify/shortfall-park.js +17 -3
  314. package/dist/verify/shortfall-park.js.map +1 -1
  315. package/dist/verify/shortfall-repeat.d.ts.map +1 -1
  316. package/dist/verify/shortfall-repeat.js +7 -2
  317. package/dist/verify/shortfall-repeat.js.map +1 -1
  318. package/dist/verify/shortfall-rulings.d.ts +93 -6
  319. package/dist/verify/shortfall-rulings.d.ts.map +1 -1
  320. package/dist/verify/shortfall-rulings.js +69 -12
  321. package/dist/verify/shortfall-rulings.js.map +1 -1
  322. package/dist/verify/stall-detector-config.d.ts.map +1 -1
  323. package/dist/verify/stall-detector-config.js +2 -1
  324. package/dist/verify/stall-detector-config.js.map +1 -1
  325. package/dist/verify/stall-detectors.d.ts +6 -4
  326. package/dist/verify/stall-detectors.d.ts.map +1 -1
  327. package/dist/verify/stall-detectors.js +9 -6
  328. package/dist/verify/stall-detectors.js.map +1 -1
  329. package/dist/verify/stalled-team-backstop.d.ts +8 -2
  330. package/dist/verify/stalled-team-backstop.d.ts.map +1 -1
  331. package/dist/verify/stalled-team-backstop.js +15 -11
  332. package/dist/verify/stalled-team-backstop.js.map +1 -1
  333. package/dist/verify/team-stall-reapers.d.ts +28 -0
  334. package/dist/verify/team-stall-reapers.d.ts.map +1 -0
  335. package/dist/verify/team-stall-reapers.js +23 -0
  336. package/dist/verify/team-stall-reapers.js.map +1 -0
  337. package/dist/verify/verification-attribution-deps.d.ts +1 -1
  338. package/dist/verify/verification-attribution-deps.d.ts.map +1 -1
  339. package/dist/verify/verification-attribution-deps.js +20 -1
  340. package/dist/verify/verification-attribution-deps.js.map +1 -1
  341. package/dist/verify/verification-boundary-env.d.ts.map +1 -1
  342. package/dist/verify/verification-boundary-env.js +23 -9
  343. package/dist/verify/verification-boundary-env.js.map +1 -1
  344. package/dist/verify/verification-checkout.d.ts +1 -1
  345. package/dist/verify/verification-checkout.d.ts.map +1 -1
  346. package/dist/verify/verification-checkout.js.map +1 -1
  347. package/dist/verify/verification-commit-sharing.d.ts.map +1 -1
  348. package/dist/verify/verification-commit-sharing.js +14 -3
  349. package/dist/verify/verification-commit-sharing.js.map +1 -1
  350. package/dist/verify/verification-config.d.ts.map +1 -1
  351. package/dist/verify/verification-config.js +1 -20
  352. package/dist/verify/verification-config.js.map +1 -1
  353. package/dist/verify/verification-default-on.d.ts +4 -1
  354. package/dist/verify/verification-default-on.d.ts.map +1 -1
  355. package/dist/verify/verification-default-on.js +29 -2
  356. package/dist/verify/verification-default-on.js.map +1 -1
  357. package/dist/verify/verification-deps-default.d.ts.map +1 -1
  358. package/dist/verify/verification-deps-default.js +13 -0
  359. package/dist/verify/verification-deps-default.js.map +1 -1
  360. package/dist/verify/verification-deps.d.ts +38 -0
  361. package/dist/verify/verification-deps.d.ts.map +1 -1
  362. package/dist/verify/verification-deps.js +2 -1
  363. package/dist/verify/verification-deps.js.map +1 -1
  364. package/dist/verify/verification-engine.d.ts.map +1 -1
  365. package/dist/verify/verification-engine.js +44 -15
  366. package/dist/verify/verification-engine.js.map +1 -1
  367. package/dist/verify/verification-feedback.d.ts.map +1 -1
  368. package/dist/verify/verification-feedback.js +1 -19
  369. package/dist/verify/verification-feedback.js.map +1 -1
  370. package/dist/verify/verify-restatement.d.ts.map +1 -1
  371. package/dist/verify/verify-restatement.js +5 -1
  372. package/dist/verify/verify-restatement.js.map +1 -1
  373. package/dist/worktree/provision.d.ts.map +1 -1
  374. package/dist/worktree/provision.js +3 -1
  375. package/dist/worktree/provision.js.map +1 -1
  376. package/package.json +2 -2
@@ -86,7 +86,14 @@ export interface ShortfallParkClassification {
86
86
  * rules follow:
87
87
  * - the park records it (null keeps the standing park's), so a park re-held by
88
88
  * the judgement a ruling re-armed is no longer released by that ruling -- the
89
- * re-judgement happens once per new ruling, not on every tick;
89
+ * re-judgement happens once per new ruling, not on every tick. A SUCCEEDED
90
+ * read of an EMPTY ruling set records '' -- "no ruling was in force", a fact
91
+ * that was KNOWN -- and the field is ABSENT only where the read FAILED (or on
92
+ * a record written before this rule). The two used to be one absence, so a
93
+ * park recorded while the rulings were unreadable could not be told from one
94
+ * recorded under a known-empty set; a reader that must not answer from an
95
+ * unknown history (verify/parked-shortfall-reuse.ts) requires the field to be
96
+ * PRESENT, which only this recorder can make meaningful;
90
97
  * - a NEW ruling that disposed of SOME of the parked nodes on an unchanged
91
98
  * commit set narrows the park to the rest instead of ending it: those nodes
92
99
  * already repeated unchanged, so sending them back to coding would restart the
@@ -1 +1 @@
1
- {"version":3,"file":"shortfall-park.d.ts","sourceRoot":"","sources":["../../src/verify/shortfall-park.ts"],"names":[],"mappings":"AAuDA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAE3B,MAAM,mCAAmC,CAAC;AAO3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAInE;AAED,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAE1E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,GAAG,IAAI,CAEpI;AAED,mEAAmE;AACnE,MAAM,WAAW,yBAAyB;IACxC,qFAAqF;IACrF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAIxG;AAED,0DAA0D;AAC1D,MAAM,WAAW,2BAA2B;IAC1C,mGAAmG;IACnG,MAAM,EAAE,qBAAqB,CAAC;IAC9B,kFAAkF;IAClF,MAAM,EAAE,OAAO,CAAC;IAChB,sGAAsG;IACtG,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;CAC5B;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACpD,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,GAAE,MAAoC,EAC3C,GAAG,GAAE,MAAiC,EACtC,kBAAkB,GAAE,MAAM,GAAG,IAAW,GACvC,2BAA2B,CAiC7B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,iBAAiB,CAO7G"}
1
+ {"version":3,"file":"shortfall-park.d.ts","sourceRoot":"","sources":["../../src/verify/shortfall-park.ts"],"names":[],"mappings":"AA2DA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAE3B,MAAM,mCAAmC,CAAC;AAO3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAInE;AAED,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAE1E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,GAAG,IAAI,CAEpI;AAED,mEAAmE;AACnE,MAAM,WAAW,yBAAyB;IACxC,qFAAqF;IACrF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAIxG;AAED,0DAA0D;AAC1D,MAAM,WAAW,2BAA2B;IAC1C,mGAAmG;IACnG,MAAM,EAAE,qBAAqB,CAAC;IAC9B,kFAAkF;IAClF,MAAM,EAAE,OAAO,CAAC;IAChB,sGAAsG;IACtG,IAAI,EAAE,aAAa,GAAG,IAAI,CAAC;CAC5B;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACpD,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,GAAE,MAAoC,EAC3C,GAAG,GAAE,MAAiC,EACtC,kBAAkB,GAAE,MAAM,GAAG,IAAW,GACvC,2BAA2B,CAoC7B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,iBAAiB,CAO7G"}
@@ -9,10 +9,14 @@
9
9
  // packages/daemon/src/integration/shortfall-ruling-release.test.ts,
10
10
  // packages/daemon/src/prompt/prompt-listing.test.ts,
11
11
  // packages/daemon/src/spawn/review-hold-park-shortfall.test.ts,
12
+ // packages/daemon/src/verify/commit-verdict-pull.test.ts,
12
13
  // packages/daemon/src/verify/delivery-commit-set.test.ts,
14
+ // packages/daemon/src/verify/explicit-row-selection.test.ts,
15
+ // packages/daemon/src/verify/parked-shortfall-reuse.test.ts,
13
16
  // packages/daemon/src/verify/shortfall-park-escalation.test.ts,
14
17
  // packages/daemon/src/verify/shortfall-park.test.ts, packages/daemon/src/verify/shortfall-routing.test.ts,
15
- // packages/daemon/src/verify/shortfall-rulings.test.ts
18
+ // packages/daemon/src/verify/shortfall-rulings.test.ts,
19
+ // packages/daemon/src/verify/verification-default-on.test.ts
16
20
  // PINNED-BY-END
17
21
  /**
18
22
  * The SHORTFALL PARK: a delivery whose identical verify shortfall re-holds on an
@@ -145,7 +149,14 @@ function narrowedByRuling(standing, shortfalls, rulingsFingerprint) {
145
149
  * rules follow:
146
150
  * - the park records it (null keeps the standing park's), so a park re-held by
147
151
  * the judgement a ruling re-armed is no longer released by that ruling -- the
148
- * re-judgement happens once per new ruling, not on every tick;
152
+ * re-judgement happens once per new ruling, not on every tick. A SUCCEEDED
153
+ * read of an EMPTY ruling set records '' -- "no ruling was in force", a fact
154
+ * that was KNOWN -- and the field is ABSENT only where the read FAILED (or on
155
+ * a record written before this rule). The two used to be one absence, so a
156
+ * park recorded while the rulings were unreadable could not be told from one
157
+ * recorded under a known-empty set; a reader that must not answer from an
158
+ * unknown history (verify/parked-shortfall-reuse.ts) requires the field to be
159
+ * PRESENT, which only this recorder can make meaningful;
149
160
  * - a NEW ruling that disposed of SOME of the parked nodes on an unchanged
150
161
  * commit set narrows the park to the rest instead of ending it: those nodes
151
162
  * already repeated unchanged, so sending them back to coding would restart the
@@ -178,6 +189,9 @@ export function classifyShortfallPark(priorGateState, shortfalls, commitSet, lim
178
189
  const repeat = { signature, count, ...(knownSet !== null ? { commitSet: knownSet } : {}) };
179
190
  if (count < limit)
180
191
  return { repeat, parked: false, park: null };
192
+ // PRESENT means KNOWN: '' is a succeeded read of an empty ruling set, and the
193
+ // field is omitted only when this judgement could not read the rulings and no
194
+ // standing park carries a known one.
181
195
  const applied = rulingsFingerprint ?? (holding ? standing.rulingsFingerprint : undefined);
182
196
  const park = {
183
197
  // A re-hold of the same shortfall keeps the standing park's signature text, so
@@ -187,7 +201,7 @@ export function classifyShortfallPark(priorGateState, shortfalls, commitSet, lim
187
201
  nodeIds: sortedNodeIds(shortfalls),
188
202
  count,
189
203
  parkedAt: holding ? standing.parkedAt : now,
190
- ...(applied ? { rulingsFingerprint: applied } : {}),
204
+ ...(applied !== undefined ? { rulingsFingerprint: applied } : {}),
191
205
  };
192
206
  return { repeat, parked: true, park };
193
207
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shortfall-park.js","sourceRoot":"","sources":["../../src/verify/shortfall-park.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortfall-park.js","sourceRoot":"","sources":["../../src/verify/shortfall-park.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shortfall-repeat.d.ts","sourceRoot":"","sources":["../../src/verify/shortfall-repeat.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,kIAAkI;IAClI,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,mFAAmF;AACnF,eAAO,MAAM,sCAAsC,IAA8B,CAAC;AAmBlF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAEjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAerE;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAE5G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACpD,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,SAAS,GAAE,MAAoC,GAC9C;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAKnD"}
1
+ {"version":3,"file":"shortfall-repeat.d.ts","sourceRoot":"","sources":["../../src/verify/shortfall-repeat.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,yFAAyF;AACzF,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,kIAAkI;IAClI,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,mFAAmF;AACnF,eAAO,MAAM,sCAAsC,IAA8B,CAAC;AAmBlF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAEjF;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAerE;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,CAE5G;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,cAAc,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACpD,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,SAAS,GAAE,MAAoC,GAC9C;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAKnD"}
@@ -1,7 +1,12 @@
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/integration/verification-history-round-trip.test.ts,
3
- // packages/daemon/src/verify/misattributed-hold.test.ts, packages/daemon/src/verify/shortfall-park.test.ts,
4
- // packages/daemon/src/verify/shortfall-repeat.test.ts, packages/daemon/src/verify/shortfall-routing.test.ts
3
+ // packages/daemon/src/verify/commit-verdict-pull.test.ts,
4
+ // packages/daemon/src/verify/explicit-row-selection.test.ts,
5
+ // packages/daemon/src/verify/misattributed-hold.test.ts,
6
+ // packages/daemon/src/verify/parked-shortfall-reuse.test.ts,
7
+ // packages/daemon/src/verify/shortfall-park.test.ts, packages/daemon/src/verify/shortfall-repeat.test.ts,
8
+ // packages/daemon/src/verify/shortfall-routing.test.ts,
9
+ // packages/daemon/src/verify/verification-default-on.test.ts
5
10
  // PINNED-BY-END
6
11
  /**
7
12
  * Shortfall REPETITION discriminator for the verify gate.
@@ -1 +1 @@
1
- {"version":3,"file":"shortfall-repeat.js","sourceRoot":"","sources":["../../src/verify/shortfall-repeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortfall-repeat.js","sourceRoot":"","sources":["../../src/verify/shortfall-repeat.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Verify honors OPERATOR SHORTFALL RULINGS: a node an operator ruled MET or
3
- * EXCUSED on a delivery (queries/shortfall-rulings.ts) no longer holds its verify
4
- * gate, and a ruling recorded since a shortfall park is a change verify re-judges.
2
+ * Verify honors SHORTFALL RULINGS: a node ruled MET or EXCUSED on a delivery
3
+ * (queries/shortfall-rulings.ts) no longer holds its verify gate, and a ruling
4
+ * recorded since a shortfall park is a change verify re-judges.
5
5
  *
6
6
  * Why: before rulings were read, an operator's "these nodes are met, re-verify"
7
7
  * lived only in an escalation's resolution notes. The next verify pass re-judged
@@ -9,6 +9,33 @@
9
9
  * repeating shortfall (verify/shortfall-park.ts) stayed parked: nothing but a new
10
10
  * commit re-armed its verify.
11
11
  *
12
+ * TWO SOURCES OF A RULING, one read. The edge (`daemon_get_delivery_shortfall_-
13
+ * rulings`) returns the union of:
14
+ * - an OPERATOR row on `delivery_shortfall_rulings` (`ruledByKind` = the
15
+ * recording credential's kind, `user` / `ai_tracker`), and
16
+ * - a node verdict of the focus's latest APPROVING focus_review
17
+ * (`ruledByKind: 'review'`, `focusReviewId` naming the review row).
18
+ * An OPERATOR ruling on a node WINS -- the edge emits a review verdict only for
19
+ * a node no operator ruled -- so nothing here has to break a tie. A `not_met`
20
+ * verdict rules NOTHING and never reaches this module: a node review called
21
+ * not_met and verify judges short is the two channels AGREEING, and the gate
22
+ * holding it is correct.
23
+ *
24
+ * Why this module treats both identically: the review verdict is the SAME
25
+ * judgement an operator was transcribing by hand. On 2026-09-24 a review excused
26
+ * a node at 01:13Z; verify failed the delivery on that node 41 times over three
27
+ * and a half hours, bouncing it verify -> verify_failed -> coding to iteration 17
28
+ * -- each cycle spawning a coding team with nothing to change -- until a human
29
+ * recorded the ruling the review had already rendered. The only asymmetry kept is
30
+ * in the RECORD: `withRulingEvidence` names which source ruled, so the injection
31
+ * evidence says whether a human recorded it or a review ruled it, and which
32
+ * review.
33
+ *
34
+ * A review-sourced ruling feeds the same FINGERPRINT (its id is
35
+ * `review:<focusReviewId>:<nodeId>` -- stable across re-reads, new per approving
36
+ * review), so `withShortfallRulingRearm` re-judges a park exactly once when a
37
+ * review lands, by the same mechanism a recorded row uses.
38
+ *
12
39
  * APPLYING rulings (applyShortfallRulings, called by the verification engine
13
40
  * between the reconciliation and the shortfall routing):
14
41
  * - MET: the node counts as achieved. It leaves the shortfall set and joins the
@@ -51,6 +78,52 @@
51
78
  * the edge nulls, so daemon_get_pending_verifications lists a parked explicit row
52
79
  * again every tick and its next dispatch applies the rulings.
53
80
  *
81
+ * WHAT ELSE MAY RE-SELECT A PARKED DELIVERY AT AN UNCHANGED HEAD: nothing but a
82
+ * new commit, and this re-arm. That claim stood in this header before it was
83
+ * true. On 2026-09-24 delivery 8ae80225 sat parked at an unchanged focus HEAD and
84
+ * was re-dispatched every ~60s for ~30 ticks: the run-mark prune ran once per
85
+ * PRODUCT over guards keyed by delivery id alone, so a sibling product's scan
86
+ * wiped this one's marks every tick (verify/default-on-guards.ts, which now
87
+ * scopes the prune, carries the incident and the fix). Reading a rule here that
88
+ * the code did not keep is what made the log look impossible rather than merely
89
+ * undiagnosed, so the rule is now pinned from two sides: the prune is scoped, and
90
+ * EVERY path that re-selects a delivery in verify writes one line naming itself
91
+ * (verify/reselection-log.ts, whose exported path union a test enumerates -- this
92
+ * module's re-arm logs 'ruling-rearm'). And the cost of any re-dispatch that does
93
+ * reach a parked delivery is now bounded independently: a dispatch whose park
94
+ * matches the current commit set and rulings fingerprint reuses the parked
95
+ * shortfall and makes NO model call (verify/parked-shortfall-reuse.ts), so a
96
+ * ruling landing here is what re-judges it -- once -- rather than every tick
97
+ * paying a ~28s reconciliation to re-derive a shortfall the park already records.
98
+ *
99
+ * THE CLOSED LIST, stated once and pinned through the real tick composition
100
+ * (verification-default-on.test.ts, commit-verdict-pull.test.ts). Of the eight
101
+ * declared re-selection paths, a parked delivery at an unchanged HEAD is
102
+ * re-selected by exactly two, and both ARE the rule: 'ruling-rearm' (this
103
+ * module -- a new ruling) and a genuinely new commit, which reaches it as
104
+ * 'credit-rearm' (a commit credited to THIS delivery; a sibling's credit does
105
+ * not re-arm it) or as a changed commit set at dispatch. Three paths CANNOT fire
106
+ * on a parked delivery: 'run-mark-prune' (a parked delivery is in verify, and a
107
+ * partial scan prunes nothing), 'run-mark-release' (not a path of its own -- the
108
+ * silent fallback when a caller names itself) and 'pending-relisting' (which
109
+ * drops a parked explicit row, verify/explicit-row-selection.ts, and writes
110
+ * its re-selection line once per dispatch that routes a verdict). The remaining
111
+ * three DECLINE while the park's facts are unchanged, each saying so in its own
112
+ * line: 'checkout-unavailable-unmark', 'model-unavailable-unmark'
113
+ * (verify/default-on-guards.ts noteDefaultOnResult) and 'commit-verdict-pull'
114
+ * (verify/commit-verdict-pull.ts).
115
+ *
116
+ * NONE OF THE THREE CAN WEDGE, and each reason is a STATE, not an exemption. A
117
+ * model-unavailable hold that landed on gate_state refuses the park
118
+ * ('awaiting-model'), so the retry proceeds; the decline fires only where a real
119
+ * judgement on these same facts still stands. The pull declines only where this
120
+ * process judged the held commit itself AND the release pass's own read finds
121
+ * that commit's verdict 'passed' -- a park is written only after the gate passed
122
+ * there, but the record write is best-effort, so the park alone does not prove
123
+ * the verdict persisted -- and a commit it already pulled for is pulled again
124
+ * while that read stays 'pending' (verify/commit-verdict-pull.ts). And every
125
+ * UNKNOWN fact re-selects.
126
+ *
54
127
  * @module verify/shortfall-rulings
55
128
  */
56
129
  import type { getFocusDeliveries } from '../queries/focuses.js';
@@ -59,8 +132,12 @@ import type { PendingVerification } from '../queries/verification.js';
59
132
  import type { TargetRestatement, TargetShortfall } from './verify-restatement.js';
60
133
  /** Read a delivery's active shortfall rulings (queries/shortfall-rulings.ts getDeliveryShortfallRulings). */
61
134
  export type ShortfallRulingsReader = (deliveryId: string) => Promise<DeliveryShortfallRulings>;
62
- /** A ruling that cleared one of this judgement's shortfalls. */
63
- export type HonoredRuling = Pick<ShortfallRuling, 'nodeId' | 'verdict' | 'rationale'>;
135
+ /**
136
+ * A ruling that cleared one of this judgement's shortfalls, carrying WHO ruled:
137
+ * a reader of the injection evidence or the log must be able to tell an operator
138
+ * row from a review verdict without a second query.
139
+ */
140
+ export type HonoredRuling = Pick<ShortfallRuling, 'nodeId' | 'verdict' | 'rationale' | 'ruledByKind' | 'ruledSessionId' | 'focusReviewId'>;
64
141
  /** A reconciliation with the delivery's rulings applied. */
65
142
  export interface RuledReconciliation {
66
143
  restatements: TargetRestatement[];
@@ -81,7 +158,17 @@ export declare function applyShortfallRulings(v: Pick<PendingVerification, 'deli
81
158
  restatements: readonly TargetRestatement[];
82
159
  shortfalls: readonly TargetShortfall[];
83
160
  }, read: ShortfallRulingsReader | undefined): Promise<RuledReconciliation>;
84
- /** The injection evidence with the honored rulings appended (unchanged when none were honored). Pure. */
161
+ /**
162
+ * The injection evidence with the honored rulings appended, each NAMING ITS
163
+ * SOURCE -- an operator row by the credential kind that recorded it, a review
164
+ * verdict by the focus_review that ruled and the session that rendered it.
165
+ * Unchanged when none were honored. Pure.
166
+ *
167
+ * Why the source is in the evidence: this note is the only durable place a
168
+ * `match` carried by a ruling can state its reason (the injection edge persists a
169
+ * reason only on a legitimate_divergence), so "who lowered the bar on this node"
170
+ * has to be legible there or it is legible nowhere.
171
+ */
85
172
  export declare function withRulingEvidence(evidence: string, honored: readonly HonoredRuling[]): string;
86
173
  /** The delivery fields the re-arm reads. */
87
174
  type ParkedCandidate = Pick<Awaited<ReturnType<typeof getFocusDeliveries>>[number], 'id' | 'name' | 'executionStatus' | 'gateState' | 'verificationMethod'>;
@@ -1 +1 @@
1
- {"version":3,"file":"shortfall-rulings.d.ts","sourceRoot":"","sources":["../../src/verify/shortfall-rulings.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAQlF,6GAA6G;AAC7G,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAE/F,gEAAgE;AAChE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,SAAS,GAAG,WAAW,CAAC,CAAC;AAEtF,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,mEAAmE;IACnE,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,iHAAiH;IACjH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iGAAiG;IACjG,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iEAAiE;IACjE,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,cAAc,CAAC,EAC3D,UAAU,EAAE;IAAE,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,EAClG,IAAI,EAAE,sBAAsB,GAAG,SAAS,GACvC,OAAO,CAAC,mBAAmB,CAAC,CA0C9B;AAED,yGAAyG;AACzG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAK9F;AAMD,4CAA4C;AAC5C,KAAK,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,CAAC,CAAC;AAK5J;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAAC,oBAAoB,CAAC,EAAE,sBAAsB,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAS/J;AAED,wDAAwD;AACxD,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D"}
1
+ {"version":3,"file":"shortfall-rulings.d.ts","sourceRoot":"","sources":["../../src/verify/shortfall-rulings.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+HG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AASlF,6GAA6G;AAC7G,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAE/F;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,eAAe,EACf,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,GAAG,gBAAgB,GAAG,eAAe,CACxF,CAAC;AAOF,4DAA4D;AAC5D,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,mEAAmE;IACnE,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,iHAAiH;IACjH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iGAAiG;IACjG,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iEAAiE;IACjE,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,YAAY,GAAG,cAAc,CAAC,EAC3D,UAAU,EAAE;IAAE,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,UAAU,EAAE,SAAS,eAAe,EAAE,CAAA;CAAE,EAClG,IAAI,EAAE,sBAAsB,GAAG,SAAS,GACvC,OAAO,CAAC,mBAAmB,CAAC,CAuD9B;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAK9F;AAMD,4CAA4C;AAC5C,KAAK,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,iBAAiB,GAAG,WAAW,GAAG,oBAAoB,CAAC,CAAC;AAoB5J;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,SAAS,eAAe,EAAE,EACtC,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CA2BnB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS;IAAE,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAAC,oBAAoB,CAAC,EAAE,sBAAsB,CAAA;CAAE,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAS/J;AAED,wDAAwD;AACxD,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D"}
@@ -1,14 +1,21 @@
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/integration/held-route-pull-dispatch.test.ts,
3
+ // packages/daemon/src/integration/review-verdict-ruling-release.test.ts,
3
4
  // packages/daemon/src/integration/shortfall-ruling-disposes-proposals-regression.test.ts,
4
5
  // packages/daemon/src/integration/shortfall-ruling-release.test.ts,
5
- // packages/daemon/src/verify/shortfall-rulings.test.ts
6
+ // packages/daemon/src/verify/reselection-log.test.ts, packages/daemon/src/verify/shortfall-rulings.test.ts,
7
+ // packages/daemon/src/verify/verification-default-on.test.ts
6
8
  // PINNED-BY-END
7
9
  import { isShortfallParkReleased, shortfallParkRefusingRework } from './shortfall-park.js';
8
10
  import { releaseDefaultOnMark } from './default-on-guards.js';
11
+ import { logReselection } from './reselection-log.js';
9
12
  import { isGateRunSelected } from './gate-run-registry.js';
10
13
  import { createLogger } from '../shell/log.js';
11
14
  const log = createLogger({ module: 'verification' });
15
+ /** Is this ruling a review verdict rather than a recorded operator row? */
16
+ function isReviewSourced(h) {
17
+ return h.ruledByKind === 'review' || (typeof h.focusReviewId === 'string' && h.focusReviewId !== '');
18
+ }
12
19
  /**
13
20
  * Apply the delivery's active rulings to this judgement's reconciliation (see the
14
21
  * module header). Never throws: a failed read applies nothing.
@@ -40,7 +47,14 @@ export async function applyShortfallRulings(v, reconciled, read) {
40
47
  ruled.shortfalls.push(s);
41
48
  continue;
42
49
  }
43
- ruled.honored.push({ nodeId: s.nodeId, verdict: ruling.verdict, rationale: ruling.rationale });
50
+ ruled.honored.push({
51
+ nodeId: s.nodeId,
52
+ verdict: ruling.verdict,
53
+ rationale: ruling.rationale,
54
+ ruledByKind: ruling.ruledByKind,
55
+ ruledSessionId: ruling.ruledSessionId,
56
+ focusReviewId: ruling.focusReviewId ?? null,
57
+ });
44
58
  if (ruling.verdict === 'met') {
45
59
  ruled.restatements.push({ nodeId: s.nodeId, statement: s.declaredStatement, classification: 'match', originalClaim: s.declaredStatement });
46
60
  }
@@ -49,22 +63,62 @@ export async function applyShortfallRulings(v, reconciled, read) {
49
63
  }
50
64
  }
51
65
  if (ruled.honored.length > 0) {
52
- log.info(`[verification] delivery "${v.deliveryName}" (${v.deliveryId}): operator rulings cleared ${ruled.honored.length} `
53
- + `shortfall node(s) -- ${ruled.honored.map((h) => `${h.nodeId} ${h.verdict}`).join(', ')}; `
66
+ const reviewCount = ruled.honored.filter(isReviewSourced).length;
67
+ const sources = reviewCount === 0
68
+ ? 'operator rulings'
69
+ : reviewCount === ruled.honored.length
70
+ ? 'approving-review verdicts'
71
+ : `rulings (${ruled.honored.length - reviewCount} operator, ${reviewCount} review-sourced)`;
72
+ log.info(`[verification] delivery "${v.deliveryName}" (${v.deliveryId}): ${sources} cleared ${ruled.honored.length} `
73
+ + `shortfall node(s) -- ${ruled.honored.map((h) => `${h.nodeId} ${h.verdict} (${rulingSourceLabel(h)})`).join(', ')}; `
54
74
  + `${ruled.shortfalls.length} shortfall(s) still hold`);
55
75
  }
56
76
  return ruled;
57
77
  }
58
- /** The injection evidence with the honored rulings appended (unchanged when none were honored). Pure. */
78
+ /** How one honored ruling names its source, in a log line or a line of evidence. */
79
+ function rulingSourceLabel(h) {
80
+ if (!isReviewSourced(h))
81
+ return `operator ruling, ${h.ruledByKind}`;
82
+ const session = h.ruledSessionId !== null ? `, review session ${h.ruledSessionId}` : '';
83
+ return `approving review ${h.focusReviewId ?? 'unknown'}${session}`;
84
+ }
85
+ /**
86
+ * The injection evidence with the honored rulings appended, each NAMING ITS
87
+ * SOURCE -- an operator row by the credential kind that recorded it, a review
88
+ * verdict by the focus_review that ruled and the session that rendered it.
89
+ * Unchanged when none were honored. Pure.
90
+ *
91
+ * Why the source is in the evidence: this note is the only durable place a
92
+ * `match` carried by a ruling can state its reason (the injection edge persists a
93
+ * reason only on a legitimate_divergence), so "who lowered the bar on this node"
94
+ * has to be legible there or it is legible nowhere.
95
+ */
59
96
  export function withRulingEvidence(evidence, honored) {
60
97
  if (honored.length === 0)
61
98
  return evidence;
62
- const lines = honored.map((h) => `- node ${h.nodeId} ruled ${h.verdict}: ${h.rationale}`);
63
- const note = `Operator shortfall rulings honored:\n${lines.join('\n')}`;
99
+ const lines = honored.map((h) => `- node ${h.nodeId} ruled ${h.verdict} by ${rulingSourceLabel(h)}: ${h.rationale}`);
100
+ const note = `Shortfall rulings honored:\n${lines.join('\n')}`;
64
101
  return evidence.trim() === '' ? note : `${evidence}\n${note}`;
65
102
  }
66
103
  /** The rulings fingerprint each delivery was last re-armed on in this process. */
67
104
  const rearmedOn = new Map();
105
+ /**
106
+ * What CHANGED, worded by what the reader actually knows. The re-arm decides on a
107
+ * fingerprint, which says only "the ruling set differs"; it must not claim "an
108
+ * operator ruling was recorded" when the change was a review verdict landing, or
109
+ * a revocation removing one. So the wording is derived from the rulings the read
110
+ * returned, and says the neutral thing when they name nothing.
111
+ */
112
+ function describeRulingSources(rulings) {
113
+ if (rulings.length === 0)
114
+ return 'the rulings on it changed';
115
+ const review = rulings.filter((r) => r.ruledByKind === 'review').length;
116
+ if (review === 0)
117
+ return 'an operator ruling was recorded';
118
+ if (review === rulings.length)
119
+ return "an approving review's verdict ruled its nodes";
120
+ return 'an operator ruling and an approving review verdict are in force';
121
+ }
68
122
  /**
69
123
  * For each delivery in verify carrying a shortfall park, drop its default-on run
70
124
  * mark when its rulings release the park and it was not already re-armed on that
@@ -78,21 +132,24 @@ export async function rearmRuledShortfallParks(deliveries, read) {
78
132
  continue;
79
133
  if (isGateRunSelected(d.id))
80
134
  continue;
81
- let fingerprint;
135
+ let read_;
82
136
  try {
83
- fingerprint = (await read(d.id)).fingerprint;
137
+ read_ = await read(d.id);
84
138
  }
85
139
  catch (err) {
86
140
  log.warn(`[verification] shortfall rulings for parked delivery "${d.name}" (${d.id}) could not be read -- its park is not re-judged this tick: ${err.message}`);
87
141
  continue;
88
142
  }
143
+ const fingerprint = read_.fingerprint;
89
144
  if (!isShortfallParkReleased(park, { commitSet: null, rulingsFingerprint: fingerprint }) || rearmedOn.get(d.id) === fingerprint)
90
145
  continue;
91
146
  rearmedOn.set(d.id, fingerprint);
92
- releaseDefaultOnMark(d.id);
147
+ // Named path, so releaseDefaultOnMark stays silent and this richer line
148
+ // stands alone (verify/reselection-log.ts: one line per re-selection).
149
+ releaseDefaultOnMark(d.id, 'ruling-rearm');
93
150
  rearmed.push(d.id);
94
- log.info(`[verification] default-on: re-arming parked delivery "${d.name}" (${d.id}) at the unchanged focus HEAD -- `
95
- + `an operator ruling was recorded since its park (nodes ${park.nodeIds.join(', ')}); verify re-judges it`);
151
+ logReselection('ruling-rearm', d.id, `parked delivery "${d.name}" re-armed at the unchanged focus HEAD -- `
152
+ + `${describeRulingSources(read_.rulings)} since its park (nodes ${park.nodeIds.join(', ')}); verify re-judges it`);
96
153
  }
97
154
  return rearmed;
98
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shortfall-rulings.js","sourceRoot":"","sources":["../../src/verify/shortfall-rulings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortfall-rulings.js","sourceRoot":"","sources":["../../src/verify/shortfall-rulings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stall-detector-config.d.ts","sourceRoot":"","sources":["../../src/verify/stall-detector-config.ts"],"names":[],"mappings":"AAmCA,uEAAuE;AACvE,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wFAAwF;AACxF,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AASD,wEAAwE;AACxE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,IAAI,MAAM,CAE9D;AAED,yFAAyF;AACzF,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,4FAA4F;AAC5F,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
1
+ {"version":3,"file":"stall-detector-config.d.ts","sourceRoot":"","sources":["../../src/verify/stall-detector-config.ts"],"names":[],"mappings":"AAoCA,uEAAuE;AACvE,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wFAAwF;AACxF,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AASD,wEAAwE;AACxE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,kFAAkF;AAClF,wBAAgB,kCAAkC,IAAI,MAAM,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,qCAAqC,IAAI,MAAM,CAE9D;AAED,yFAAyF;AACzF,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,4FAA4F;AAC5F,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,IAAI,MAAM,CAE1D;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
@@ -1,5 +1,6 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: packages/daemon/src/focus/listener-auto-advance-teamless-wedge.test.ts
2
+ // Pinned by: packages/daemon/src/completion/stall-guard-time-floor.test.ts,
3
+ // packages/daemon/src/focus/listener-auto-advance-teamless-wedge.test.ts
3
4
  // PINNED-BY-END
4
5
  /**
5
6
  * Single in-daemon source for the stall-detector thresholds.
@@ -1 +1 @@
1
- {"version":3,"file":"stall-detector-config.js","sourceRoot":"","sources":["../../src/verify/stall-detector-config.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oFAAoF;AACpF,gBAAgB;AAEhB;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,GAAuB,EAAE,QAAgB;IAC9D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,sBAAsB;IACpC,OAAO,aAAa,EAAE,CAAC,kCAAkC,CAAC;AAC5D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,6BAA6B;IAC3C,OAAO,aAAa,EAAE,CAAC,gCAAgC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,aAAa,EAAE,CAAC,uBAAuB,CAAC;AACjD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,EAAE,CAAC,4BAA4B,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,2BAA2B;AAE3B,wEAAwE;AACxE,MAAM,UAAU,uBAAuB;IACrC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kCAAkC;IAChD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qCAAqC;IACnD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"stall-detector-config.js","sourceRoot":"","sources":["../../src/verify/stall-detector-config.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,4EAA4E;AAC5E,2EAA2E;AAC3E,gBAAgB;AAEhB;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,SAAS,aAAa,CAAC,GAAuB,EAAE,QAAgB;IAC9D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IACrD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACpD,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,sBAAsB;IACpC,OAAO,aAAa,EAAE,CAAC,kCAAkC,CAAC;AAC5D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,6BAA6B;IAC3C,OAAO,aAAa,EAAE,CAAC,gCAAgC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,aAAa,EAAE,CAAC,uBAAuB,CAAC;AACjD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,EAAE,CAAC,4BAA4B,CAAC;AACtD,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,gFAAgF;AAChF,8EAA8E;AAC9E,iFAAiF;AACjF,2BAA2B;AAE3B,wEAAwE;AACxE,MAAM,UAAU,uBAAuB;IACrC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,kCAAkC;IAChD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mCAAmC;IACjD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qCAAqC;IACnD,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,2BAA2B;IACzC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iCAAiC;IAC/C,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -199,10 +199,12 @@ export declare function decideReviewWindowClose(reviewRequestedAt: string | null
199
199
  export declare function checkReviewWindowStaleForFocus(ctx: FocusStallContext, reviewRequestedAt: string | null, deps?: ReviewWindowDeps): Promise<void>;
200
200
  export interface IdleTeamStallDeps {
201
201
  /**
202
- * The team's per-team last-activity epoch ms, or null when nothing has been
203
- * recorded yet (a team still initializing before its first agent event).
202
+ * When the team last showed progress by the ONE progress measure -- its last
203
+ * agent event, or the last measured movement of its diff, HEAD, issues or
204
+ * delivery statuses (completion/team-stillness.ts) -- or null when nothing has
205
+ * been recorded yet (a team still initializing before its first agent event).
204
206
  */
205
- getLastActivityAt: (focusId: string) => number | null;
207
+ getLastProgressAt: (focusId: string) => number | null;
206
208
  /**
207
209
  * True when the focus has a live team ELIGIBLE for idle recovery: it exists in
208
210
  * activeTeams and is in the `executing` phase. A team already tearing down
@@ -251,7 +253,7 @@ export declare function isTeamIdleStalled(lastActivityMs: number | null, nowMs:
251
253
  * team is never recovered: its clock keeps advancing, so its idle age stays
252
254
  * under the threshold.
253
255
  */
254
- export declare function checkIdleTeamStallForFocus(ctx: FocusStallContext, deps?: IdleTeamStallDeps): void;
256
+ export declare function checkIdleTeamStallForFocus(ctx: FocusStallContext, overrides?: Partial<IdleTeamStallDeps>): void;
255
257
  /**
256
258
  * Grace after a terminal-error outcome (or after a tracked team's PID vanishes)
257
259
  * before the outcome backstop recovers it. Deliberately MINUTES, not the hours
@@ -1 +1 @@
1
- {"version":3,"file":"stall-detectors.d.ts","sourceRoot":"","sources":["../../src/verify/stall-detectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stall-detectors.d.ts","sourceRoot":"","sources":["../../src/verify/stall-detectors.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  // packages/daemon/src/verify/stall-detectors-clock-wiring.test.ts,
8
8
  // packages/daemon/src/verify/stall-detectors.test.ts,
9
9
  // packages/daemon/src/verify/team-outcome-stall-detector.test.ts,
10
+ // packages/daemon/src/verify/team-stall-reapers.test.ts,
10
11
  // packages/daemon/src/verify/unreviewed-settle-detector.test.ts
11
12
  // PINNED-BY-END
12
13
  import { ESCALATION_REASONS, ESCALATION_DISPOSITIONS, withRetry, } from '@telora/daemon-core';
@@ -15,6 +16,7 @@ import { deliveryGuardCauseKey } from '../queries/cause-key.js';
15
16
  import { NO_HUMAN_ACT } from '../queries/filing-observation.js';
16
17
  import { getActiveTeams, terminateTeam } from '../focus/focus-executor.js';
17
18
  import { getTeamLastActivityAt, getTeamErrorResultAt, getTeamLeadPid } from '../focus/focus-team-state.js';
19
+ import { readTeamLastProgressAt } from '../completion/team-stillness.js';
18
20
  import { isProcessAlive } from '../spawn/liveness.js';
19
21
  import { clearReviewRequestedAt } from '../queries/focuses.js';
20
22
  import { buildVerifyGateStallEscalation, decideVerifyGateStall, VERIFY_GATE_STALL_REPEAT_THRESHOLD, } from './verify-gate-stall.js';
@@ -268,7 +270,7 @@ export function isTeamRecoverable(focusId) {
268
270
  return team !== undefined && team.phase === 'executing';
269
271
  }
270
272
  const defaultIdleTeamStallDeps = {
271
- getLastActivityAt: getTeamLastActivityAt,
273
+ getLastProgressAt: readTeamLastProgressAt,
272
274
  isTeamRecoverable,
273
275
  recoverTeam: (focusId) => terminateTeam(focusId, 'teardown'),
274
276
  now: () => Date.now(),
@@ -301,20 +303,21 @@ export function isTeamIdleStalled(lastActivityMs, nowMs, thresholdMs) {
301
303
  * team is never recovered: its clock keeps advancing, so its idle age stays
302
304
  * under the threshold.
303
305
  */
304
- export function checkIdleTeamStallForFocus(ctx, deps = defaultIdleTeamStallDeps) {
306
+ export function checkIdleTeamStallForFocus(ctx, overrides = {}) {
307
+ const deps = { ...defaultIdleTeamStallDeps, ...overrides };
305
308
  if (!deps.isTeamRecoverable(ctx.focusId))
306
309
  return;
307
310
  const thresholdHours = deps.thresholdHours ?? resolveIdleTeamStallHours();
308
311
  const thresholdMs = thresholdHours * 3_600_000;
309
312
  const nowMs = (deps.now ?? Date.now)();
310
- const lastActivityMs = deps.getLastActivityAt(ctx.focusId);
311
- if (!isTeamIdleStalled(lastActivityMs, nowMs, thresholdMs))
313
+ const lastProgressMs = deps.getLastProgressAt(ctx.focusId);
314
+ if (!isTeamIdleStalled(lastProgressMs, nowMs, thresholdMs))
312
315
  return;
313
- const idleHours = Math.floor((nowMs - lastActivityMs) / 3_600_000);
316
+ const idleHours = Math.floor((nowMs - lastProgressMs) / 3_600_000);
314
317
  const recovered = deps.recoverTeam(ctx.focusId);
315
318
  if (recovered) {
316
319
  log.info(`[stall-detectors] Recovered idle-stalled team for focus "${ctx.focusName}" ` +
317
- `(no agent event for ~${idleHours}h > ${thresholdHours}h): terminated so merge-back, ` +
320
+ `(no agent event and no diff/HEAD/issue/status movement for ~${idleHours}h > ${thresholdHours}h): terminated so merge-back, ` +
318
321
  `slot release, and delivery re-gating resume with no human action.`);
319
322
  }
320
323
  else {