@telora/daemon 0.23.1 → 0.23.5

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 (298) hide show
  1. package/build-info.json +6 -3
  2. package/dist/completion/review-exit/review-exit-deps.d.ts +2 -1
  3. package/dist/completion/review-exit/review-exit-deps.d.ts.map +1 -1
  4. package/dist/completion/review-exit/review-exit-phase.d.ts.map +1 -1
  5. package/dist/completion/review-exit/review-exit-phase.js +5 -4
  6. package/dist/completion/review-exit/review-exit-phase.js.map +1 -1
  7. package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts +2 -1
  8. package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts.map +1 -1
  9. package/dist/completion/review-exit-holds/review-exit-verdict-gate.js +8 -5
  10. package/dist/completion/review-exit-holds/review-exit-verdict-gate.js.map +1 -1
  11. package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
  12. package/dist/completion/state-cascade/review-next-step.js +15 -8
  13. package/dist/completion/state-cascade/review-next-step.js.map +1 -1
  14. package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
  15. package/dist/completion/team-exit/status-advance-phase.js +6 -6
  16. package/dist/completion/team-exit/status-advance-phase.js.map +1 -1
  17. package/dist/completion/team-liveness/supervision-firing-record.d.ts +6 -0
  18. package/dist/completion/team-liveness/supervision-firing-record.d.ts.map +1 -1
  19. package/dist/completion/team-liveness/supervision-firing-record.js +10 -1
  20. package/dist/completion/team-liveness/supervision-firing-record.js.map +1 -1
  21. package/dist/completion/team-outcome/decide-close-rows.d.ts +9 -0
  22. package/dist/completion/team-outcome/decide-close-rows.d.ts.map +1 -1
  23. package/dist/completion/team-outcome/decide-close-rows.js +18 -4
  24. package/dist/completion/team-outcome/decide-close-rows.js.map +1 -1
  25. package/dist/composition/completion-event-context.js +2 -2
  26. package/dist/composition/completion-event-context.js.map +1 -1
  27. package/dist/composition/daemon-contexts.d.ts.map +1 -1
  28. package/dist/composition/daemon-contexts.js +5 -1
  29. package/dist/composition/daemon-contexts.js.map +1 -1
  30. package/dist/composition/engine-start-context.d.ts +3 -0
  31. package/dist/composition/engine-start-context.d.ts.map +1 -0
  32. package/dist/composition/engine-start-context.js +24 -0
  33. package/dist/composition/engine-start-context.js.map +1 -0
  34. package/dist/composition/execution-spawn-context.d.ts.map +1 -1
  35. package/dist/composition/execution-spawn-context.js +13 -1
  36. package/dist/composition/execution-spawn-context.js.map +1 -1
  37. package/dist/composition/runtime-delivery-advance-context.js +3 -3
  38. package/dist/composition/runtime-delivery-advance-context.js.map +1 -1
  39. package/dist/composition/runtime-heartbeat-context.d.ts.map +1 -1
  40. package/dist/composition/runtime-heartbeat-context.js +3 -0
  41. package/dist/composition/runtime-heartbeat-context.js.map +1 -1
  42. package/dist/composition/runtime-poll-context.d.ts +29 -2
  43. package/dist/composition/runtime-poll-context.d.ts.map +1 -1
  44. package/dist/composition/runtime-poll-context.js +51 -4
  45. package/dist/composition/runtime-poll-context.js.map +1 -1
  46. package/dist/composition/runtime-prd-context.d.ts.map +1 -1
  47. package/dist/composition/runtime-prd-context.js +25 -1
  48. package/dist/composition/runtime-prd-context.js.map +1 -1
  49. package/dist/composition/runtime-spawn-pass-context.js +1 -1
  50. package/dist/composition/runtime-spawn-pass-context.js.map +1 -1
  51. package/dist/composition/spawn-pass-deps.d.ts +1 -1
  52. package/dist/composition/spawn-pass-deps.d.ts.map +1 -1
  53. package/dist/composition/spawn-pass-deps.js +3 -0
  54. package/dist/composition/spawn-pass-deps.js.map +1 -1
  55. package/dist/composition/standing-approval-context.d.ts.map +1 -1
  56. package/dist/composition/standing-approval-context.js +2 -1
  57. package/dist/composition/standing-approval-context.js.map +1 -1
  58. package/dist/composition/state-cascade-context.js +1 -1
  59. package/dist/composition/state-cascade-context.js.map +1 -1
  60. package/dist/composition/tower-pass-context.d.ts +9 -0
  61. package/dist/composition/tower-pass-context.d.ts.map +1 -0
  62. package/dist/composition/tower-pass-context.js +53 -0
  63. package/dist/composition/tower-pass-context.js.map +1 -0
  64. package/dist/composition/verify-rework-context.d.ts +26 -2
  65. package/dist/composition/verify-rework-context.d.ts.map +1 -1
  66. package/dist/composition/verify-rework-context.js +34 -10
  67. package/dist/composition/verify-rework-context.js.map +1 -1
  68. package/dist/config/live-daemon-config.d.ts.map +1 -1
  69. package/dist/config/live-daemon-config.js +1 -19
  70. package/dist/config/live-daemon-config.js.map +1 -1
  71. package/dist/daemon-state/awaiting-slot.d.ts.map +1 -1
  72. package/dist/daemon-state/awaiting-slot.js +2 -1
  73. package/dist/daemon-state/awaiting-slot.js.map +1 -1
  74. package/dist/daemon-state/focus-team-state.js +1 -1
  75. package/dist/daemon-state/intake-control.d.ts.map +1 -1
  76. package/dist/daemon-state/intake-control.js +2 -1
  77. package/dist/daemon-state/intake-control.js.map +1 -1
  78. package/dist/delivery/recorded-concerns.d.ts +19 -2
  79. package/dist/delivery/recorded-concerns.d.ts.map +1 -1
  80. package/dist/delivery/recorded-concerns.js +32 -6
  81. package/dist/delivery/recorded-concerns.js.map +1 -1
  82. package/dist/directive/directive-queue.js +1 -1
  83. package/dist/focus/closed-review-window.d.ts +12 -0
  84. package/dist/focus/closed-review-window.d.ts.map +1 -1
  85. package/dist/focus/closed-review-window.js +18 -0
  86. package/dist/focus/closed-review-window.js.map +1 -1
  87. package/dist/focus/control-state.d.ts +30 -26
  88. package/dist/focus/control-state.d.ts.map +1 -1
  89. package/dist/focus/control-state.js +60 -46
  90. package/dist/focus/control-state.js.map +1 -1
  91. package/dist/focus/daemon-contexts.d.ts +23 -0
  92. package/dist/focus/daemon-contexts.d.ts.map +1 -1
  93. package/dist/focus/daemon-contexts.js +1 -1
  94. package/dist/focus/daemon-contexts.js.map +1 -1
  95. package/dist/focus/engine-ready-pass.d.ts +11 -0
  96. package/dist/focus/engine-ready-pass.d.ts.map +1 -0
  97. package/dist/focus/engine-ready-pass.js +25 -0
  98. package/dist/focus/engine-ready-pass.js.map +1 -0
  99. package/dist/focus/failed-head-wedge.d.ts +95 -0
  100. package/dist/focus/failed-head-wedge.d.ts.map +1 -0
  101. package/dist/focus/failed-head-wedge.js +85 -0
  102. package/dist/focus/failed-head-wedge.js.map +1 -0
  103. package/dist/focus/focus-engine.d.ts.map +1 -1
  104. package/dist/focus/focus-engine.js +20 -20
  105. package/dist/focus/focus-engine.js.map +1 -1
  106. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  107. package/dist/focus/focus-loop-registry.js +2 -1
  108. package/dist/focus/focus-loop-registry.js.map +1 -1
  109. package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
  110. package/dist/focus/focus-poller-auto-advance.js +4 -4
  111. package/dist/focus/focus-poller-auto-advance.js.map +1 -1
  112. package/dist/focus/focus-poller-spawn.d.ts +42 -49
  113. package/dist/focus/focus-poller-spawn.d.ts.map +1 -1
  114. package/dist/focus/focus-poller-spawn.js +129 -83
  115. package/dist/focus/focus-poller-spawn.js.map +1 -1
  116. package/dist/focus/focus-poller-state.d.ts.map +1 -1
  117. package/dist/focus/focus-poller-state.js +1 -19
  118. package/dist/focus/focus-poller-state.js.map +1 -1
  119. package/dist/focus/focus-poller.d.ts.map +1 -1
  120. package/dist/focus/focus-poller.js +2 -1
  121. package/dist/focus/focus-poller.js.map +1 -1
  122. package/dist/focus/focus-respawn-guard.d.ts +7 -0
  123. package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
  124. package/dist/focus/focus-respawn-guard.js +20 -1
  125. package/dist/focus/focus-respawn-guard.js.map +1 -1
  126. package/dist/focus/focus-spawn-decision.d.ts +11 -3
  127. package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
  128. package/dist/focus/focus-spawn-decision.js +3 -1
  129. package/dist/focus/focus-spawn-decision.js.map +1 -1
  130. package/dist/focus/heartbeat-metadata.d.ts +3 -0
  131. package/dist/focus/heartbeat-metadata.d.ts.map +1 -1
  132. package/dist/focus/heartbeat-metadata.js +6 -1
  133. package/dist/focus/heartbeat-metadata.js.map +1 -1
  134. package/dist/focus/heartbeat.d.ts.map +1 -1
  135. package/dist/focus/heartbeat.js +2 -0
  136. package/dist/focus/heartbeat.js.map +1 -1
  137. package/dist/focus/pending-directive-gates.d.ts +47 -0
  138. package/dist/focus/pending-directive-gates.d.ts.map +1 -0
  139. package/dist/focus/pending-directive-gates.js +76 -0
  140. package/dist/focus/pending-directive-gates.js.map +1 -0
  141. package/dist/focus/pending-review-approved-head.d.ts +2 -1
  142. package/dist/focus/pending-review-approved-head.d.ts.map +1 -1
  143. package/dist/focus/pending-review-approved-head.js +3 -4
  144. package/dist/focus/pending-review-approved-head.js.map +1 -1
  145. package/dist/focus/pending-spawn-pass-deps.d.ts +5 -0
  146. package/dist/focus/pending-spawn-pass-deps.d.ts.map +1 -1
  147. package/dist/focus/pending-spawn-pass-deps.js +4 -1
  148. package/dist/focus/pending-spawn-pass-deps.js.map +1 -1
  149. package/dist/focus/pending-spawn-verify-hold.d.ts +13 -0
  150. package/dist/focus/pending-spawn-verify-hold.d.ts.map +1 -0
  151. package/dist/focus/pending-spawn-verify-hold.js +30 -0
  152. package/dist/focus/pending-spawn-verify-hold.js.map +1 -0
  153. package/dist/focus/ready-focus-spawn-action.d.ts +15 -2
  154. package/dist/focus/ready-focus-spawn-action.d.ts.map +1 -1
  155. package/dist/focus/ready-focus-spawn-action.js +25 -8
  156. package/dist/focus/ready-focus-spawn-action.js.map +1 -1
  157. package/dist/focus/spawn-demand-probe.d.ts +45 -0
  158. package/dist/focus/spawn-demand-probe.d.ts.map +1 -0
  159. package/dist/focus/spawn-demand-probe.js +74 -0
  160. package/dist/focus/spawn-demand-probe.js.map +1 -0
  161. package/dist/focus/stranded-review-reroute.d.ts.map +1 -1
  162. package/dist/focus/stranded-review-reroute.js +5 -3
  163. package/dist/focus/stranded-review-reroute.js.map +1 -1
  164. package/dist/focus/verify-routing-passes.d.ts +8 -3
  165. package/dist/focus/verify-routing-passes.d.ts.map +1 -1
  166. package/dist/focus/verify-routing-passes.js +1 -0
  167. package/dist/focus/verify-routing-passes.js.map +1 -1
  168. package/dist/git/focus-branch-containment.d.ts +39 -0
  169. package/dist/git/focus-branch-containment.d.ts.map +1 -0
  170. package/dist/git/focus-branch-containment.js +47 -0
  171. package/dist/git/focus-branch-containment.js.map +1 -0
  172. package/dist/git/types.d.ts.map +1 -1
  173. package/dist/git/types.js +1 -0
  174. package/dist/git/types.js.map +1 -1
  175. package/dist/poll-trigger.js +1 -1
  176. package/dist/poll-trigger.js.map +1 -1
  177. package/dist/prd/arm-readiness.d.ts.map +1 -1
  178. package/dist/prd/arm-readiness.js +2 -1
  179. package/dist/prd/arm-readiness.js.map +1 -1
  180. package/dist/prd/controller-shared.d.ts +32 -8
  181. package/dist/prd/controller-shared.d.ts.map +1 -1
  182. package/dist/prd/controller-shared.js +34 -18
  183. package/dist/prd/controller-shared.js.map +1 -1
  184. package/dist/prd/controller.d.ts.map +1 -1
  185. package/dist/prd/controller.js +3 -8
  186. package/dist/prd/controller.js.map +1 -1
  187. package/dist/prd/done-sweep.d.ts.map +1 -1
  188. package/dist/prd/done-sweep.js +2 -7
  189. package/dist/prd/done-sweep.js.map +1 -1
  190. package/dist/prd/frontier-arming.d.ts +13 -1
  191. package/dist/prd/frontier-arming.d.ts.map +1 -1
  192. package/dist/prd/frontier-arming.js +50 -2
  193. package/dist/prd/frontier-arming.js.map +1 -1
  194. package/dist/prd/index.d.ts.map +1 -1
  195. package/dist/prd/index.js +2 -1
  196. package/dist/prd/index.js.map +1 -1
  197. package/dist/queries/api-client/shared.d.ts +1 -0
  198. package/dist/queries/api-client/shared.d.ts.map +1 -1
  199. package/dist/queries/api-client/shared.js +16 -1
  200. package/dist/queries/api-client/shared.js.map +1 -1
  201. package/dist/queries/deliveries/issues.d.ts.map +1 -1
  202. package/dist/queries/deliveries/issues.js +3 -0
  203. package/dist/queries/deliveries/issues.js.map +1 -1
  204. package/dist/queries/focuses/focus-discovery.d.ts +15 -0
  205. package/dist/queries/focuses/focus-discovery.d.ts.map +1 -1
  206. package/dist/queries/focuses/focus-discovery.js +10 -1
  207. package/dist/queries/focuses/focus-discovery.js.map +1 -1
  208. package/dist/queries/prd/prd.d.ts.map +1 -1
  209. package/dist/queries/prd/prd.js +2 -1
  210. package/dist/queries/prd/prd.js.map +1 -1
  211. package/dist/queries/tower/tower-state.d.ts +56 -0
  212. package/dist/queries/tower/tower-state.d.ts.map +1 -0
  213. package/dist/queries/tower/tower-state.js +76 -0
  214. package/dist/queries/tower/tower-state.js.map +1 -0
  215. package/dist/queries/wire-schemas/schemas.d.ts +12 -0
  216. package/dist/queries/wire-schemas/schemas.d.ts.map +1 -1
  217. package/dist/queries/wire-schemas/schemas.js +11 -0
  218. package/dist/queries/wire-schemas/schemas.js.map +1 -1
  219. package/dist/spawn/lead-continuation.d.ts +9 -1
  220. package/dist/spawn/lead-continuation.d.ts.map +1 -1
  221. package/dist/spawn/lead-continuation.js +37 -11
  222. package/dist/spawn/lead-continuation.js.map +1 -1
  223. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  224. package/dist/spawn/spawn-decision.js +4 -1
  225. package/dist/spawn/spawn-decision.js.map +1 -1
  226. package/dist/supervision/spawn-cooldown.js +1 -1
  227. package/dist/supervision/stop-rows-team-session.d.ts.map +1 -1
  228. package/dist/supervision/stop-rows-team-session.js +11 -10
  229. package/dist/supervision/stop-rows-team-session.js.map +1 -1
  230. package/dist/supervision/team-work.d.ts.map +1 -1
  231. package/dist/supervision/team-work.js +3 -1
  232. package/dist/supervision/team-work.js.map +1 -1
  233. package/dist/testing/fixtures/api-client.js +1 -1
  234. package/dist/testing/fixtures/approved-head-inert-deps.js +1 -1
  235. package/dist/testing/fixtures/approved-head-inert-deps.js.map +1 -1
  236. package/dist/testing/fixtures/index.js +1 -1
  237. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  238. package/dist/testing/fixtures/pending-spawn-world.js +3 -1
  239. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  240. package/dist/testing/fixtures/review-exit-deps.js +1 -1
  241. package/dist/testing/fixtures/review-exit-deps.js.map +1 -1
  242. package/dist/testing/fixtures/verification-feedback-deps.d.ts.map +1 -1
  243. package/dist/testing/fixtures/verification-feedback-deps.js +2 -0
  244. package/dist/testing/fixtures/verification-feedback-deps.js.map +1 -1
  245. package/dist/tower/focus-landed.d.ts +4 -0
  246. package/dist/tower/focus-landed.d.ts.map +1 -0
  247. package/dist/tower/focus-landed.js +45 -0
  248. package/dist/tower/focus-landed.js.map +1 -0
  249. package/dist/tower/tower-admission.d.ts +91 -0
  250. package/dist/tower/tower-admission.d.ts.map +1 -0
  251. package/dist/tower/tower-admission.js +137 -0
  252. package/dist/tower/tower-admission.js.map +1 -0
  253. package/dist/tower/tower-graph.d.ts +23 -0
  254. package/dist/tower/tower-graph.d.ts.map +1 -0
  255. package/dist/tower/tower-graph.js +53 -0
  256. package/dist/tower/tower-graph.js.map +1 -0
  257. package/dist/tower/tower-heartbeat-status.d.ts +28 -0
  258. package/dist/tower/tower-heartbeat-status.d.ts.map +1 -0
  259. package/dist/tower/tower-heartbeat-status.js +11 -0
  260. package/dist/tower/tower-heartbeat-status.js.map +1 -0
  261. package/dist/tower/tower-mode.d.ts +9 -0
  262. package/dist/tower/tower-mode.d.ts.map +1 -0
  263. package/dist/tower/tower-mode.js +16 -0
  264. package/dist/tower/tower-mode.js.map +1 -0
  265. package/dist/tower/tower-pass-standing.d.ts +8 -0
  266. package/dist/tower/tower-pass-standing.d.ts.map +1 -0
  267. package/dist/tower/tower-pass-standing.js +50 -0
  268. package/dist/tower/tower-pass-standing.js.map +1 -0
  269. package/dist/tower/tower-pass.d.ts +55 -0
  270. package/dist/tower/tower-pass.d.ts.map +1 -0
  271. package/dist/tower/tower-pass.js +59 -0
  272. package/dist/tower/tower-pass.js.map +1 -0
  273. package/dist/tower/tower-production-pass.d.ts +3 -0
  274. package/dist/tower/tower-production-pass.d.ts.map +1 -0
  275. package/dist/tower/tower-production-pass.js +24 -0
  276. package/dist/tower/tower-production-pass.js.map +1 -0
  277. package/dist/tower/tower-spawn-intent.d.ts +72 -0
  278. package/dist/tower/tower-spawn-intent.d.ts.map +1 -0
  279. package/dist/tower/tower-spawn-intent.js +138 -0
  280. package/dist/tower/tower-spawn-intent.js.map +1 -0
  281. package/dist/tower/tower-verdicts.d.ts +81 -0
  282. package/dist/tower/tower-verdicts.d.ts.map +1 -0
  283. package/dist/tower/tower-verdicts.js +139 -0
  284. package/dist/tower/tower-verdicts.js.map +1 -0
  285. package/dist/types/index.js +1 -1
  286. package/dist/types/issue-status.d.ts +14 -0
  287. package/dist/types/issue-status.d.ts.map +1 -1
  288. package/dist/types/issue-status.js +14 -0
  289. package/dist/types/issue-status.js.map +1 -1
  290. package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
  291. package/dist/verify/outcome-routing/verification-rework-issue.d.ts +44 -5
  292. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  293. package/dist/verify/outcome-routing/verification-rework-issue.js +85 -27
  294. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  295. package/dist/worktree/focus-worktree-state.d.ts.map +1 -1
  296. package/dist/worktree/focus-worktree-state.js +1 -0
  297. package/dist/worktree/focus-worktree-state.js.map +1 -1
  298. package/package.json +3 -3
@@ -15,7 +15,7 @@ import { requestDaemonFailStop } from '../daemon-state/fail-stop.js';
15
15
  import { failStopDeps } from './execution-process-context.js';
16
16
  /** The spawn passes' focus reads, the team spawn and the review-next-step gate's filer, spool and fail-stop. */
17
17
  export function buildSpawnPassContext() {
18
- const readRecordedConcernIds = makeRecordedConcernReader(getFocusReviewFindingFacts);
18
+ const readRecordedConcernIds = makeRecordedConcernReader(getFocusReviewFindingFacts, getFocusIssues);
19
19
  return {
20
20
  getReadyFocuses,
21
21
  getActiveFocuses,
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-spawn-pass-context.js","sourceRoot":"","sources":["../../src/composition/runtime-spawn-pass-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,yEAAyE;AACzE,gBAAgB;AAehB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,yCAAyC,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAChI,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,gHAAgH;AAChH,MAAM,UAAU,qBAAqB;IACnC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,0BAA0B,CAAC,CAAC;IACrF,OAAO;QACL,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,cAAc,EAAE;YACd,kBAAkB;YAClB,cAAc;YACd,sBAAsB;YACtB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,4BAA4B,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC;YAC1F,kBAAkB,EAAE,kBAAkB,EAAE;YACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;SACvE;QACD,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAAE;QAClF,uBAAuB,EAAE;YACvB,kBAAkB;YAClB,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;YAC1F,sBAAsB;SACvB;KACF,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,4BAA4B,EAAE,yCAAyC,EAAE,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"runtime-spawn-pass-context.js","sourceRoot":"","sources":["../../src/composition/runtime-spawn-pass-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,yEAAyE;AACzE,gBAAgB;AAehB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,4CAA4C,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC3G,OAAO,EAAE,yCAAyC,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAChI,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D,gHAAgH;AAChH,MAAM,UAAU,qBAAqB;IACnC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,0BAA0B,EAAE,cAAc,CAAC,CAAC;IACrG,OAAO;QACL,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,cAAc,EAAE;YACd,kBAAkB;YAClB,cAAc;YACd,sBAAsB;YACtB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;YACrB,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,4BAA4B,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,CAAC;YAC1F,kBAAkB,EAAE,kBAAkB,EAAE;YACxC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;SACvE;QACD,kBAAkB,EAAE,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAAE;QAClF,uBAAuB,EAAE;YACvB,kBAAkB;YAClB,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;YAC1F,sBAAsB;SACvB;KACF,CAAC;AACJ,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,4BAA4B,EAAE,yCAAyC,EAAE,CAAC;AACrF,CAAC"}
@@ -13,7 +13,7 @@ import type { DaemonContexts } from '../focus/daemon-contexts.js';
13
13
  import type { PendingSpawnPassDeps, ReadyFocusPassDeps } from '../focus/pending-spawn-pass-deps.js';
14
14
  import type { PendingReviewApprovedHeadDeps } from '../focus/pending-review-approved-head.js';
15
15
  /** Every context the spawn passes are mapped from: all of them but the passes themselves. */
16
- export type SpawnPassSources = Omit<DaemonContexts, 'readyFocusPass' | 'pendingSpawnPass'>;
16
+ export type SpawnPassSources = Omit<DaemonContexts, 'readyFocusPass' | 'pendingSpawnPass' | 'towerPass' | 'engineStart'>;
17
17
  /** The approved-head gate over the contexts: its own reads, the approval read, the unchanged-range read, the rework filing. */
18
18
  export declare function buildReviewApprovedHeadDeps(contexts: SpawnPassSources): PendingReviewApprovedHeadDeps;
19
19
  /** The ready-focus pass over the composition root's contexts. */
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-pass-deps.d.ts","sourceRoot":"","sources":["../../src/composition/spawn-pass-deps.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAQ9F,6FAA6F;AAC7F,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,kBAAkB,CAAC,CAAC;AAE3F,+HAA+H;AAC/H,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,6BAA6B,CAOrG;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,kBAAkB,CActF;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,oBAAoB,CAgB1F"}
1
+ {"version":3,"file":"spawn-pass-deps.d.ts","sourceRoot":"","sources":["../../src/composition/spawn-pass-deps.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAS9F,6FAA6F;AAC7F,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,GAAG,aAAa,CAAC,CAAC;AAEzH,+HAA+H;AAC/H,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,6BAA6B,CAOrG;AAED,iEAAiE;AACjE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,kBAAkB,CAetF;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,oBAAoB,CAiB1F"}
@@ -7,6 +7,7 @@ import { createReadyFocusCapHoldReader } from '../supervision/review-cycle-cap-h
7
7
  import { readReviewHeadApproval } from '../completion/state-cascade/review-approved-head-gate.js';
8
8
  import { readUnchangedReviewedHead } from '../focus/unchanged-reviewed-head.js';
9
9
  import { fileReworkForFailedVerdict } from '../verify/outcome-routing/verification-rework-issue.js';
10
+ import { PRODUCTION_TOWER_ADMISSION } from './tower-pass-context.js';
10
11
  /** The approved-head gate over the contexts: its own reads, the approval read, the unchanged-range read, the rework filing. */
11
12
  export function buildReviewApprovedHeadDeps(contexts) {
12
13
  return {
@@ -30,6 +31,7 @@ export function buildReadyFocusPassDeps(contexts) {
30
31
  const row = (await spawnPass.getActiveFocuses(org, focus.product_id ?? undefined)).find((f) => f.focus_id === focus.focus_id);
31
32
  return row ? row.review_requested_at : 'absent';
32
33
  },
34
+ tower: PRODUCTION_TOWER_ADMISSION,
33
35
  };
34
36
  }
35
37
  /** The pending-spawn pass over the composition root's contexts. */
@@ -48,6 +50,7 @@ export function buildPendingSpawnPassDeps(contexts) {
48
50
  nextSpawnRoute: contexts.nextSpawnRoute,
49
51
  pendingSpawnGuard: contexts.pendingSpawnGuard,
50
52
  respawnCycleEscalation: contexts.respawnCycleEscalation,
53
+ tower: PRODUCTION_TOWER_ADMISSION,
51
54
  };
52
55
  }
53
56
  //# sourceMappingURL=spawn-pass-deps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-pass-deps.js","sourceRoot":"","sources":["../../src/composition/spawn-pass-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn-pass-deps.js","sourceRoot":"","sources":["../../src/composition/spawn-pass-deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"standing-approval-context.d.ts","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AAIzG,kHAAkH;AAClH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,sBAAsB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GACxD,oBAAoB,CAgBtB"}
1
+ {"version":3,"file":"standing-approval-context.d.ts","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0DAA0D,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8DAA8D,CAAC;AAKzG,kHAAkH;AAClH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,sBAAsB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GACxD,oBAAoB,CAgBtB"}
@@ -26,6 +26,7 @@ import { listReviewCensuses } from '../completion/review-exit/review-census-reco
26
26
  import { fileEscalationIdempotent } from '../supervision/escalation-suppression.js';
27
27
  import { makeRecordedConcernReader } from '../delivery/recorded-concerns.js';
28
28
  import { getFocusReviewFindingFacts } from '../queries/focus-review/review-finding-facts.js';
29
+ import { getFocusIssues } from '../queries/focuses/focuses.js';
29
30
  /** The production deps for one focus; `readReviewHeadApproval` is the cascade's own head/approval read for it. */
30
31
  export function buildStandingApprovalDeps(productId, focusId, readReviewHeadApproval) {
31
32
  return {
@@ -41,7 +42,7 @@ export function buildStandingApprovalDeps(productId, focusId, readReviewHeadAppr
41
42
  evaluateExternalCondition: makeDeferredRequestClosureEvaluator(productId),
42
43
  externalHoldClock: () => new Date().toISOString(),
43
44
  fileStrandedEscalation: fileEscalationIdempotent,
44
- readRecordedConcernIds: makeRecordedConcernReader(getFocusReviewFindingFacts),
45
+ readRecordedConcernIds: makeRecordedConcernReader(getFocusReviewFindingFacts, getFocusIssues),
45
46
  };
46
47
  }
47
48
  //# sourceMappingURL=standing-approval-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standing-approval-context.js","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,iEAAiE;AACjE,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAGpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAE7F,kHAAkH;AAClH,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,OAAe,EACf,sBAAyD;IAEzD,OAAO;QACL,GAAG,eAAe;QAClB,sBAAsB;QACtB,kBAAkB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QAChE,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,KAAK,QAAQ;QACjF,iBAAiB;QACjB,sBAAsB;QACtB,oBAAoB,EAAE,kBAAkB,CAAC,qBAAqB;QAC9D,+BAA+B;QAC/B,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,4BAA4B,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACnF,yBAAyB,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzE,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjD,sBAAsB,EAAE,wBAAwB;QAChD,sBAAsB,EAAE,yBAAyB,CAAC,0BAA0B,CAAC;KAC9E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"standing-approval-context.js","sourceRoot":"","sources":["../../src/composition/standing-approval-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,iEAAiE;AACjE,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAGpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,kHAAkH;AAClH,MAAM,UAAU,yBAAyB,CACvC,SAAiB,EACjB,OAAe,EACf,sBAAyD;IAEzD,OAAO;QACL,GAAG,eAAe;QAClB,sBAAsB;QACtB,kBAAkB,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QAChE,qBAAqB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,KAAK,QAAQ;QACjF,iBAAiB;QACjB,sBAAsB;QACtB,oBAAoB,EAAE,kBAAkB,CAAC,qBAAqB;QAC9D,+BAA+B;QAC/B,4BAA4B,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,4BAA4B,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACnF,yBAAyB,EAAE,mCAAmC,CAAC,SAAS,CAAC;QACzE,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjD,sBAAsB,EAAE,wBAAwB;QAChD,sBAAsB,EAAE,yBAAyB,CAAC,0BAA0B,EAAE,cAAc,CAAC;KAC9F,CAAC;AACJ,CAAC"}
@@ -99,7 +99,7 @@ export function buildStateCascadeContext() {
99
99
  clearReviewRequestedAt: closeReviewWindowWith(clearReviewRequestedAt),
100
100
  isReviewSessionActive,
101
101
  recordReviewSkip,
102
- readRecordedConcernIds: makeRecordedConcernReader(getFocusReviewFindingFacts),
102
+ readRecordedConcernIds: makeRecordedConcernReader(getFocusReviewFindingFacts, getFocusIssues),
103
103
  },
104
104
  getActiveFocuses,
105
105
  reviewHeadApproval: {
@@ -1 +1 @@
1
- {"version":3,"file":"state-cascade-context.js","sourceRoot":"","sources":["../../src/composition/state-cascade-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-cascade-context.js","sourceRoot":"","sources":["../../src/composition/state-cascade-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type FocusBranchContainmentGit } from '../git/focus-branch-containment.js';
2
+ import type { TowerPassDepsSource } from '../tower/tower-pass.js';
3
+ import type { TowerAdmissionDeps } from '../tower/tower-admission.js';
4
+ /** What the spawn passes' admission reads of the tower: the live mode and this daemon's pass standing. */
5
+ export declare const PRODUCTION_TOWER_ADMISSION: TowerAdmissionDeps;
6
+ /** The git the focus-branch containment read runs (no checkout; the product repo). */
7
+ export declare const FOCUS_BRANCH_GIT: FocusBranchContainmentGit;
8
+ export declare function buildTowerPassDepsSource(): TowerPassDepsSource;
9
+ //# sourceMappingURL=tower-pass-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tower-pass-context.d.ts","sourceRoot":"","sources":["../../src/composition/tower-pass-context.ts"],"names":[],"mappings":"AAoBA,OAAO,EAA8B,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAKhH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,0GAA0G;AAC1G,eAAO,MAAM,0BAA0B,EAAE,kBAGxC,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAE,yBAAyE,CAAC;AAEzG,wBAAgB,wBAAwB,IAAI,mBAAmB,CAoB9D"}
@@ -0,0 +1,53 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/tower/tower-production-pass.test.ts
3
+ // PINNED-BY-END
4
+ /**
5
+ * The production binding of the product towers' verdict pass
6
+ * (tower/tower-pass.ts TowerPassDeps) and of the git read the LANDED rule needs
7
+ * (git/focus-branch-containment.ts), shared with the PRD frontier
8
+ * (composition/runtime-prd-context.ts). Part of the daemon composition root.
9
+ *
10
+ * The deps are built per pass from the LIVE config, so a hot-reloaded products
11
+ * array is seen on the next poll.
12
+ *
13
+ * @module composition/tower-pass-context
14
+ */
15
+ import { liveDaemonConfig } from '../config/live-daemon-config.js';
16
+ import { configForProduct, findProduct } from '../config/config.js';
17
+ import { getActiveTeams } from '../daemon-state/focus-team-state.js';
18
+ import { runGitSync } from '../git/types.js';
19
+ import { readFocusBranchContainment } from '../git/focus-branch-containment.js';
20
+ import { getTowerState, writeTowerVerdicts } from '../queries/tower/tower-state.js';
21
+ import { judgeTowerGraph } from '../tower/tower-graph.js';
22
+ import { resolveTowerMode } from '../tower/tower-mode.js';
23
+ import { wantingFocusIds } from '../tower/tower-spawn-intent.js';
24
+ import { towerPassStanding } from '../tower/tower-pass-standing.js';
25
+ /** What the spawn passes' admission reads of the tower: the live mode and this daemon's pass standing. */
26
+ export const PRODUCTION_TOWER_ADMISSION = {
27
+ mode: () => resolveTowerMode(),
28
+ passStanding: (productId) => towerPassStanding(productId),
29
+ };
30
+ /** The git the focus-branch containment read runs (no checkout; the product repo). */
31
+ export const FOCUS_BRANCH_GIT = { run: (args, cwd) => runGitSync(args, cwd) };
32
+ export function buildTowerPassDepsSource() {
33
+ return () => {
34
+ const config = liveDaemonConfig;
35
+ if (!config)
36
+ return null;
37
+ return {
38
+ products: config.products,
39
+ mode: resolveTowerMode(),
40
+ readState: getTowerState,
41
+ writeVerdicts: (productId, writes) => writeTowerVerdicts(productId, writes),
42
+ liveTeamFocusIds: () => new Set(getActiveTeams().keys()),
43
+ wantingFocusIds: () => wantingFocusIds(),
44
+ judgeGraph: (productId, state) => {
45
+ const product = findProduct(config, productId);
46
+ const pc = product ? configForProduct(config, product) : config;
47
+ return judgeTowerGraph(state, (focus) => readFocusBranchContainment(focus, pc.integrationBranch, pc.repoPath, FOCUS_BRANCH_GIT));
48
+ },
49
+ now: () => new Date(),
50
+ };
51
+ };
52
+ }
53
+ //# sourceMappingURL=tower-pass-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tower-pass-context.js","sourceRoot":"","sources":["../../src/composition/tower-pass-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,0BAA0B,EAAkC,MAAM,oCAAoC,CAAC;AAChH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,0GAA0G;AAC1G,MAAM,CAAC,MAAM,0BAA0B,GAAuB;IAC5D,IAAI,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;IAC9B,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC;CAC1D,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAA8B,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;AAEzG,MAAM,UAAU,wBAAwB;IACtC,OAAO,GAAG,EAAE;QACV,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAChC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO;YACL,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,gBAAgB,EAAE;YACxB,SAAS,EAAE,aAAa;YACxB,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC;YAC3E,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,CAAC;YACxD,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;YACxC,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;gBAC/B,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC/C,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAChE,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACtC,0BAA0B,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;YAC5F,CAAC;YACD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -1,11 +1,35 @@
1
+ import { getFocusDeliveries, getFocusIssues } from '../queries/focuses/focuses.js';
2
+ import { createIssue, getDeliveryIssues } from '../queries/deliveries/issues.js';
3
+ import { getFocusReviewFindingFacts } from '../queries/focus-review/review-finding-facts.js';
1
4
  import { type ReworkAttributionDeps } from '../verify/attribution/rework-attribution.js';
2
5
  import type { FailedVerdictReworkDeps, ReworkIssueDeps, ReworkRetryDeps } from '../verify/outcome-routing/verification-rework-issue.js';
3
6
  /** Who owns a failed verdict: the focus worktree, the recorded verdicts, and git. */
4
7
  export declare function buildReworkAttributionDeps(): ReworkAttributionDeps;
5
- /** The rework Bug filing: issue reads and writes, deduped across the focus, attributed to its owner. */
8
+ /** The IO the rework filing composes over: the issue and delivery reads and writes, and the focus's finding facts. */
9
+ export interface ReworkIssueIO {
10
+ getDeliveryIssues: typeof getDeliveryIssues;
11
+ createIssue: typeof createIssue;
12
+ getFocusDeliveries: typeof getFocusDeliveries;
13
+ /** The focus's review-finding facts, from which the recorded concerns are derived. */
14
+ readFocusReviewFindingFacts: typeof getFocusReviewFindingFacts;
15
+ /** The focus's issues, read to keep a gate rework Bug out of the recorded concerns. */
16
+ readFocusIssues: typeof getFocusIssues;
17
+ }
18
+ /** The production IO: the Telora API reads and writes. */
19
+ export declare const PRODUCTION_REWORK_IO: ReworkIssueIO;
20
+ /**
21
+ * The rework Bug filing composed over `io`: deduped across the focus, attributed to
22
+ * its owner, and skipped only beside OWED work -- the recorded concerns are derived
23
+ * from the focus's finding facts by the same reader the spawn and advance paths
24
+ * bind (delivery/recorded-concerns.ts makeRecordedConcernReader).
25
+ */
26
+ export declare function composeReworkIssueDeps(io: ReworkIssueIO): ReworkIssueDeps;
27
+ /** The production rework Bug filing. */
6
28
  export declare function buildReworkIssueDeps(): ReworkIssueDeps;
7
29
  /** The owed-filing retry: the filing plus the recorded verdict and a clock. */
8
30
  export declare function buildReworkRetryDeps(): ReworkRetryDeps;
9
- /** The per-focus filing for a failed verdict: the filing plus the ONE-owner choice over the focus's verify deliveries. */
31
+ /** The per-focus filing for a failed verdict composed over `io`: the filing plus the ONE-owner choice over the focus's verify deliveries. */
32
+ export declare function composeFailedVerdictReworkDeps(io: ReworkIssueIO): FailedVerdictReworkDeps;
33
+ /** The production per-focus filing for a failed verdict. */
10
34
  export declare function buildFailedVerdictReworkDeps(): FailedVerdictReworkDeps;
11
35
  //# sourceMappingURL=verify-rework-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-rework-context.d.ts","sourceRoot":"","sources":["../../src/composition/verify-rework-context.ts"],"names":[],"mappings":"AAwBA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,eAAe,EAChB,MAAM,wDAAwD,CAAC;AAEhE,qFAAqF;AACrF,wBAAgB,0BAA0B,IAAI,qBAAqB,CAWlE;AAED,wGAAwG;AACxG,wBAAgB,oBAAoB,IAAI,eAAe,CAQtD;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,IAAI,eAAe,CAMtD;AAED,0HAA0H;AAC1H,wBAAgB,4BAA4B,IAAI,uBAAuB,CAOtE"}
1
+ {"version":3,"file":"verify-rework-context.d.ts","sourceRoot":"","sources":["../../src/composition/verify-rework-context.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAC7F,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,eAAe,EAChB,MAAM,wDAAwD,CAAC;AAEhE,qFAAqF;AACrF,wBAAgB,0BAA0B,IAAI,qBAAqB,CAWlE;AAED,sHAAsH;AACtH,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,WAAW,EAAE,OAAO,WAAW,CAAC;IAChC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,sFAAsF;IACtF,2BAA2B,EAAE,OAAO,0BAA0B,CAAC;IAC/D,uFAAuF;IACvF,eAAe,EAAE,OAAO,cAAc,CAAC;CACxC;AAED,0DAA0D;AAC1D,eAAO,MAAM,oBAAoB,EAAE,aAMlC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,aAAa,GAAG,eAAe,CASzE;AAED,wCAAwC;AACxC,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD;AAED,+EAA+E;AAC/E,wBAAgB,oBAAoB,IAAI,eAAe,CAMtD;AAED,6IAA6I;AAC7I,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,aAAa,GAAG,uBAAuB,CAOzF;AAED,4DAA4D;AAC5D,wBAAgB,4BAA4B,IAAI,uBAAuB,CAEtE"}
@@ -15,11 +15,13 @@
15
15
  */
16
16
  import { DELIVERY_STATUS } from '@telora/daemon-core';
17
17
  import { getFocusWorktree } from '../worktree/focus-worktree-state.js';
18
- import { getFocusDeliveries } from '../queries/focuses/focuses.js';
18
+ import { getFocusDeliveries, getFocusIssues } from '../queries/focuses/focuses.js';
19
19
  import { createIssue, getDeliveryIssues } from '../queries/deliveries/issues.js';
20
20
  import { listReviewWindowCommits } from '../git/review-window-commits.js';
21
21
  import { findGreenAncestor, listAncestorsWithGit } from '../verify/gate-verdicts/judged-ancestor.js';
22
22
  import { readCommitVerdict } from '../verify/gate-verdicts/commit-verdict-record.js';
23
+ import { makeRecordedConcernReader } from '../delivery/recorded-concerns.js';
24
+ import { getFocusReviewFindingFacts } from '../queries/focus-review/review-finding-facts.js';
23
25
  import { deliveryOwnsFailure, selectReworkOwner, } from '../verify/attribution/rework-attribution.js';
24
26
  /** Who owns a failed verdict: the focus worktree, the recorded verdicts, and git. */
25
27
  export function buildReworkAttributionDeps() {
@@ -33,16 +35,34 @@ export function buildReworkAttributionDeps() {
33
35
  .map((d) => d.id),
34
36
  };
35
37
  }
36
- /** The rework Bug filing: issue reads and writes, deduped across the focus, attributed to its owner. */
37
- export function buildReworkIssueDeps() {
38
+ /** The production IO: the Telora API reads and writes. */
39
+ export const PRODUCTION_REWORK_IO = {
40
+ getDeliveryIssues,
41
+ createIssue,
42
+ getFocusDeliveries,
43
+ readFocusReviewFindingFacts: getFocusReviewFindingFacts,
44
+ readFocusIssues: getFocusIssues,
45
+ };
46
+ /**
47
+ * The rework Bug filing composed over `io`: deduped across the focus, attributed to
48
+ * its owner, and skipped only beside OWED work -- the recorded concerns are derived
49
+ * from the focus's finding facts by the same reader the spawn and advance paths
50
+ * bind (delivery/recorded-concerns.ts makeRecordedConcernReader).
51
+ */
52
+ export function composeReworkIssueDeps(io) {
38
53
  const attribution = buildReworkAttributionDeps();
39
54
  return {
40
- getDeliveryIssues,
41
- createIssue,
42
- getFocusDeliveries,
55
+ getDeliveryIssues: io.getDeliveryIssues,
56
+ createIssue: io.createIssue,
57
+ getFocusDeliveries: io.getFocusDeliveries,
58
+ readRecordedConcernIds: makeRecordedConcernReader(io.readFocusReviewFindingFacts, io.readFocusIssues),
43
59
  deliveryOwnsFailure: (deliveryId, at) => deliveryOwnsFailure(deliveryId, at, attribution),
44
60
  };
45
61
  }
62
+ /** The production rework Bug filing. */
63
+ export function buildReworkIssueDeps() {
64
+ return composeReworkIssueDeps(PRODUCTION_REWORK_IO);
65
+ }
46
66
  /** The owed-filing retry: the filing plus the recorded verdict and a clock. */
47
67
  export function buildReworkRetryDeps() {
48
68
  return {
@@ -51,13 +71,17 @@ export function buildReworkRetryDeps() {
51
71
  now: Date.now,
52
72
  };
53
73
  }
54
- /** The per-focus filing for a failed verdict: the filing plus the ONE-owner choice over the focus's verify deliveries. */
55
- export function buildFailedVerdictReworkDeps() {
74
+ /** The per-focus filing for a failed verdict composed over `io`: the filing plus the ONE-owner choice over the focus's verify deliveries. */
75
+ export function composeFailedVerdictReworkDeps(io) {
56
76
  const attribution = buildReworkAttributionDeps();
57
77
  return {
58
- ...buildReworkIssueDeps(),
59
- getFocusDeliveries,
78
+ ...composeReworkIssueDeps(io),
79
+ getFocusDeliveries: io.getFocusDeliveries,
60
80
  selectReworkOwner: (candidates, at) => selectReworkOwner(candidates, at, attribution),
61
81
  };
62
82
  }
83
+ /** The production per-focus filing for a failed verdict. */
84
+ export function buildFailedVerdictReworkDeps() {
85
+ return composeFailedVerdictReworkDeps(PRODUCTION_REWORK_IO);
86
+ }
63
87
  //# sourceMappingURL=verify-rework-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-rework-context.js","sourceRoot":"","sources":["../../src/composition/verify-rework-context.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oGAAoG;AACpG,iFAAiF;AACjF,gBAAgB;AAEhB;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAElB,MAAM,6CAA6C,CAAC;AAOrD,qFAAqF;AACrF,MAAM,UAAU,0BAA0B;IACxC,OAAO;QACL,mBAAmB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI;QACjF,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtH,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CACvD,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE,CAAC;QAClG,UAAU,EAAE,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,uBAAuB,CAAC,YAAY,EAAE,IAAI,EAAE,GAAG,CAAC;QACzF,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;aACzE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,eAAe,CAAC,MAAM,CAAC;aAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpB,CAAC;AACJ,CAAC;AAED,wGAAwG;AACxG,MAAM,UAAU,oBAAoB;IAClC,MAAM,WAAW,GAAG,0BAA0B,EAAE,CAAC;IACjD,OAAO;QACL,iBAAiB;QACjB,WAAW;QACX,kBAAkB;QAClB,mBAAmB,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,CAAC;KAC1F,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,GAAG,oBAAoB,EAAE;QACzB,iBAAiB,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC;QAC1F,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC;AACJ,CAAC;AAED,0HAA0H;AAC1H,MAAM,UAAU,4BAA4B;IAC1C,MAAM,WAAW,GAAG,0BAA0B,EAAE,CAAC;IACjD,OAAO;QACL,GAAG,oBAAoB,EAAE;QACzB,kBAAkB;QAClB,iBAAiB,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,EAAE,WAAW,CAAC;KACtF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"verify-rework-context.js","sourceRoot":"","sources":["../../src/composition/verify-rework-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"live-daemon-config.d.ts","sourceRoot":"","sources":["../../src/config/live-daemon-config.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,IAAI,gBAAgB,EAAE,YAAY,GAAG,IAAW,CAAC;AAExD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAEpE"}
1
+ {"version":3,"file":"live-daemon-config.d.ts","sourceRoot":"","sources":["../../src/config/live-daemon-config.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,eAAO,IAAI,gBAAgB,EAAE,YAAY,GAAG,IAAW,CAAC;AAExD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAEpE"}
@@ -1,23 +1,5 @@
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/completion-event/review-window-idle-coding-lead-regression.test.ts,
3
- // packages/daemon/src/completion/review-cycle-budget/review-cycle-cap-regression.test.ts,
4
- // packages/daemon/src/focus/awaiting-slot.test.ts,
5
- // packages/daemon/src/focus/focus-poller-product-poll.test.ts,
6
- // packages/daemon/src/focus/gaps-found-hands-to-coding.test.ts,
7
- // packages/daemon/src/focus/held-review-window-not-stranded.test.ts,
8
- // packages/daemon/src/focus/parked-shortfall-spawn.test.ts,
9
- // packages/daemon/src/focus/pending-review-approved-head.test.ts,
10
- // packages/daemon/src/focus/pending-spawn-review-next-step.test.ts,
11
- // packages/daemon/src/focus/ready-focus-no-work-spawn.test.ts,
12
- // packages/daemon/src/focus/session-health-poll-sweep.test.ts,
13
- // packages/daemon/src/focus/unchanged-reviewed-head.test.ts,
14
- // packages/daemon/src/focus/unclaimed-notice-coding-precedence.test.ts,
15
- // packages/daemon/src/integration/approved-head-gate-failure-respawn-regression.test.ts,
16
- // packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
17
- // packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
18
- // packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts,
19
- // packages/daemon/src/integration/shortfall-park-incident-regression.test.ts,
20
- // packages/daemon/src/spawn/review-hold-park-shortfall.test.ts
2
+ // Pinned by: 24 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/config/live-daemon-config.ts
21
3
  // PINNED-BY-END
22
4
  export let liveDaemonConfig = null;
23
5
  export function setLiveDaemonConfig(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"live-daemon-config.js","sourceRoot":"","sources":["../../src/config/live-daemon-config.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gHAAgH;AAChH,4FAA4F;AAC5F,qDAAqD;AACrD,iEAAiE;AACjE,kEAAkE;AAClE,uEAAuE;AACvE,8DAA8D;AAC9D,oEAAoE;AACpE,sEAAsE;AACtE,iEAAiE;AACjE,iEAAiE;AACjE,+DAA+D;AAC/D,0EAA0E;AAC1E,2FAA2F;AAC3F,mFAAmF;AACnF,2FAA2F;AAC3F,mFAAmF;AACnF,gFAAgF;AAChF,iEAAiE;AACjE,gBAAgB;AAiBhB,MAAM,CAAC,IAAI,gBAAgB,GAAwB,IAAI,CAAC;AAExD,MAAM,UAAU,mBAAmB,CAAC,KAA0B;IAC5D,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"live-daemon-config.js","sourceRoot":"","sources":["../../src/config/live-daemon-config.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+GAA+G;AAC/G,gBAAgB;AAiBhB,MAAM,CAAC,IAAI,gBAAgB,GAAwB,IAAI,CAAC;AAExD,MAAM,UAAU,mBAAmB,CAAC,KAA0B;IAC5D,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"awaiting-slot.d.ts","sourceRoot":"","sources":["../../src/daemon-state/awaiting-slot.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAQ5C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAGlH;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,sHAAsH;AACtH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED,4EAA4E;AAC5E,wBAAgB,6BAA6B,IAAI,IAAI,CAGpD"}
1
+ {"version":3,"file":"awaiting-slot.d.ts","sourceRoot":"","sources":["../../src/daemon-state/awaiting-slot.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,6FAA6F;AAC7F,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;AAQ5C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAGlH;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,sHAAsH;AACtH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED,4EAA4E;AAC5E,wBAAgB,6BAA6B,IAAI,IAAI,CAGpD"}
@@ -1,7 +1,8 @@
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/focus/awaiting-slot.test.ts,
3
3
  // packages/daemon/src/focus/focus-activity-producers.test.ts,
4
- // packages/daemon/src/focus/heartbeat-team-liveness-phases.test.ts
4
+ // packages/daemon/src/focus/heartbeat-team-liveness-phases.test.ts,
5
+ // packages/daemon/src/tower/tower-entrypoints.test.ts, packages/daemon/src/tower/tower-spawn-modes.test.ts
5
6
  // PINNED-BY-END
6
7
  /** focusId -> epoch ms the pass FIRST left it waiting in the current unbroken run of passes. */
7
8
  const awaitingSlotByPass = {
@@ -1 +1 @@
1
- {"version":3,"file":"awaiting-slot.js","sourceRoot":"","sources":["../../src/daemon-state/awaiting-slot.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,8DAA8D;AAC9D,gEAAgE;AAChE,qEAAqE;AACrE,gBAAgB;AA8BhB,gGAAgG;AAChG,MAAM,kBAAkB,GAAmD;IACzE,KAAK,EAAE,IAAI,GAAG,EAAE;IAChB,OAAO,EAAE,IAAI,GAAG,EAAE;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAe,EAAE,QAA0B,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IAC1G,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,sHAAsH;AACtH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC3F,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,6BAA6B;IAC3C,kBAAkB,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACrC,kBAAkB,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"awaiting-slot.js","sourceRoot":"","sources":["../../src/daemon-state/awaiting-slot.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,8DAA8D;AAC9D,gEAAgE;AAChE,sEAAsE;AACtE,6GAA6G;AAC7G,gBAAgB;AA8BhB,gGAAgG;AAChG,MAAM,kBAAkB,GAAmD;IACzE,KAAK,EAAE,IAAI,GAAG,EAAE;IAChB,OAAO,EAAE,IAAI,GAAG,EAAE;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAe,EAAE,QAA0B,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IAC1G,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACvC,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC1F,CAAC;AAED,sHAAsH;AACtH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC3F,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACtD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,6BAA6B;IAC3C,kBAAkB,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;IACrC,kBAAkB,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;AACzC,CAAC"}
@@ -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: 71 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/daemon-state/focus-team-state.ts
2
+ // Pinned by: 75 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/daemon-state/focus-team-state.ts
3
3
  // PINNED-BY-END
4
4
  import { createLogger } from '../log/daemon-log.js';
5
5
  const log = createLogger({ module: 'focus-executor' });
@@ -1 +1 @@
1
- {"version":3,"file":"intake-control.d.ts","sourceRoot":"","sources":["../../src/daemon-state/intake-control.ts"],"names":[],"mappings":"AA4BA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,0CAA0C;AAC1C,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
1
+ {"version":3,"file":"intake-control.d.ts","sourceRoot":"","sources":["../../src/daemon-state/intake-control.ts"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAOxC;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AAED,0CAA0C;AAC1C,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
@@ -1,6 +1,7 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
2
  // Pinned by: packages/daemon/src/daemon-state/intake-control.test.ts,
3
- // packages/daemon/src/focus/heartbeat-draining-status.test.ts
3
+ // packages/daemon/src/focus/heartbeat-draining-status.test.ts,
4
+ // packages/daemon/src/focus/pending-spawn-drain.test.ts
4
5
  // PINNED-BY-END
5
6
  import { createLogger } from '../log/daemon-log.js';
6
7
  const log = createLogger({ module: 'auto-update' });
@@ -1 +1 @@
1
- {"version":3,"file":"intake-control.js","sourceRoot":"","sources":["../../src/daemon-state/intake-control.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,sEAAsE;AACtE,gEAAgE;AAChE,gBAAgB;AAGhB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AACpD;;;;;;;;;;;;;;;GAeG;AAEH,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,GAAG,CAAC,IAAI,CACN,qFAAqF;QACnF,oFAAoF,CACvF,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,QAAQ,GAAG,KAAK,CAAC;IACjB,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;AAClE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,8BAA8B;IAC5C,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"intake-control.js","sourceRoot":"","sources":["../../src/daemon-state/intake-control.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,sEAAsE;AACtE,iEAAiE;AACjE,0DAA0D;AAC1D,gBAAgB;AAGhB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;AACpD;;;;;;;;;;;;;;;GAeG;AAEH,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,QAAQ;QAAE,OAAO;IACrB,QAAQ,GAAG,IAAI,CAAC;IAChB,GAAG,CAAC,IAAI,CACN,qFAAqF;QACnF,oFAAoF,CACvF,CAAC;AACJ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC,QAAQ;QAAE,OAAO;IACtB,QAAQ,GAAG,KAAK,CAAC;IACjB,GAAG,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;AAClE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,8BAA8B;IAC5C,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC"}
@@ -27,13 +27,30 @@ import type { ReconcilerIssue } from './delivery-reconciler.js';
27
27
  export type RecordedConcernReader = (focusId: string) => Promise<ReadonlySet<string>>;
28
28
  /** No recorded concerns: every open issue counts as work. */
29
29
  export declare const NO_RECORDED_CONCERNS: ReadonlySet<string>;
30
+ /**
31
+ * The fail-closed answer of a reader whose facts read FAILED: empty like
32
+ * NO_RECORDED_CONCERNS (every open issue counts as work), but a distinct object, so
33
+ * a caller that reports WHY it treated an issue as owed can say the concerns were
34
+ * unreadable rather than absent (concernsUnreadable).
35
+ */
36
+ export declare const UNREADABLE_RECORDED_CONCERNS: ReadonlySet<string>;
37
+ /** Whether a reader's answer is the fail-closed one for an unreadable facts read. */
38
+ export declare function concernsUnreadable(concernIds: ReadonlySet<string>): boolean;
30
39
  /**
31
40
  * Bind the production reader over the focus review-finding-facts read
32
41
  * (queries/focus-review/review-finding-facts.ts getFocusReviewFindingFacts),
33
42
  * keeping the recorded concerns (that module's recordedConcernIds -- the same
34
- * definition the team prompt's listing uses).
43
+ * definition the team prompt's listing uses) LESS every daemon-filed gate rework
44
+ * Bug (types/issue-status.ts isGateReworkIssue). issue_create credits an issue to
45
+ * the focus's live session, so a rework Bug filed while a review runs lands in
46
+ * that review's created ids, and an approving review records it as a concern --
47
+ * which would leave the failed gate with no owed work. `readFocusIssues` is read
48
+ * only when there are concerns to check; its failure fails closed like the facts.
35
49
  */
36
- export declare function makeRecordedConcernReader(readFacts: (focusId: string) => Promise<FocusReviewFindingFacts>): RecordedConcernReader;
50
+ export declare function makeRecordedConcernReader(readFacts: (focusId: string) => Promise<FocusReviewFindingFacts>, readFocusIssues: (focusId: string) => Promise<ReadonlyArray<{
51
+ id: string;
52
+ title: string;
53
+ }>>): RecordedConcernReader;
37
54
  /**
38
55
  * Pure: a delivery's open work issues, split into ALL open ones and the OWED
39
56
  * ones (open and not a recorded concern -- the reconciler's hasBlockingOpenWork).
@@ -1 +1 @@
1
- {"version":3,"file":"recorded-concerns.d.ts","sourceRoot":"","sources":["../../src/delivery/recorded-concerns.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMhE,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtF,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAqB,CAAC;AAE3E;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,GAC/D,qBAAqB,CAYvB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,IAAI,EAAE,CAAC,EAAE,CAAA;CAAE,CAG1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EACxE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,eAAe,EAAE,CAInB"}
1
+ {"version":3,"file":"recorded-concerns.d.ts","sourceRoot":"","sources":["../../src/delivery/recorded-concerns.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAE/F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAMhE,gFAAgF;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtF,6DAA6D;AAC7D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAqB,CAAC;AAE3E;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,MAAM,CAAqB,CAAC;AAEnF,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAE3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,EAChE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,GAC1F,qBAAqB,CAevB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACpE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B;IAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,IAAI,EAAE,CAAC,EAAE,CAAA;CAAE,CAG1B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EACxE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,eAAe,EAAE,CAInB"}
@@ -1,27 +1,53 @@
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/delivery/recorded-concerns.test.ts
2
+ // Pinned by: packages/daemon/src/delivery/recorded-concerns.test.ts,
3
+ // packages/daemon/src/focus/stranded-review-refire-bound.test.ts,
4
+ // packages/daemon/src/focus/stranded-review-reroute.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
+ // packages/daemon/src/integration/verify-failure-rework-route.test.ts,
8
+ // packages/daemon/src/verify/outcome-routing/verification-rework-issue.test.ts
3
9
  // PINNED-BY-END
4
10
  import { recordedConcernIds } from '../queries/focus-review/recorded-concern-ids.js';
5
- import { OPEN_ISSUE_STATUSES } from '../types/issue-status.js';
11
+ import { OPEN_ISSUE_STATUSES, isGateReworkIssue } from '../types/issue-status.js';
6
12
  import { createLogger } from '../log/daemon-log.js';
7
13
  const log = createLogger({ module: 'recorded-concerns' });
8
14
  /** No recorded concerns: every open issue counts as work. */
9
15
  export const NO_RECORDED_CONCERNS = new Set();
16
+ /**
17
+ * The fail-closed answer of a reader whose facts read FAILED: empty like
18
+ * NO_RECORDED_CONCERNS (every open issue counts as work), but a distinct object, so
19
+ * a caller that reports WHY it treated an issue as owed can say the concerns were
20
+ * unreadable rather than absent (concernsUnreadable).
21
+ */
22
+ export const UNREADABLE_RECORDED_CONCERNS = new Set();
23
+ /** Whether a reader's answer is the fail-closed one for an unreadable facts read. */
24
+ export function concernsUnreadable(concernIds) {
25
+ return concernIds === UNREADABLE_RECORDED_CONCERNS;
26
+ }
10
27
  /**
11
28
  * Bind the production reader over the focus review-finding-facts read
12
29
  * (queries/focus-review/review-finding-facts.ts getFocusReviewFindingFacts),
13
30
  * keeping the recorded concerns (that module's recordedConcernIds -- the same
14
- * definition the team prompt's listing uses).
31
+ * definition the team prompt's listing uses) LESS every daemon-filed gate rework
32
+ * Bug (types/issue-status.ts isGateReworkIssue). issue_create credits an issue to
33
+ * the focus's live session, so a rework Bug filed while a review runs lands in
34
+ * that review's created ids, and an approving review records it as a concern --
35
+ * which would leave the failed gate with no owed work. `readFocusIssues` is read
36
+ * only when there are concerns to check; its failure fails closed like the facts.
15
37
  */
16
- export function makeRecordedConcernReader(readFacts) {
38
+ export function makeRecordedConcernReader(readFacts, readFocusIssues) {
17
39
  return async (focusId) => {
18
40
  try {
19
- return recordedConcernIds(await readFacts(focusId));
41
+ const concerns = recordedConcernIds(await readFacts(focusId));
42
+ if (concerns.size === 0)
43
+ return concerns;
44
+ const rework = new Set((await readFocusIssues(focusId)).filter(isGateReworkIssue).map((i) => i.id));
45
+ return new Set([...concerns].filter((id) => !rework.has(id)));
20
46
  }
21
47
  catch (err) {
22
48
  log.warn(`[recorded-concerns] review finding facts unreadable for focus ${focusId} -- ` +
23
49
  `every open issue counts as work this tick: ${err.message}`);
24
- return NO_RECORDED_CONCERNS;
50
+ return UNREADABLE_RECORDED_CONCERNS;
25
51
  }
26
52
  };
27
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recorded-concerns.js","sourceRoot":"","sources":["../../src/delivery/recorded-concerns.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oEAAoE;AACpE,gBAAgB;AA2BhB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAK1D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,EAAU,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAgE;IAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,OAAO,kBAAkB,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,iEAAiE,OAAO,MAAM;gBAC9E,8CAA+C,GAAa,CAAC,OAAO,EAAE,CACvE,CAAC;YACF,OAAO,oBAAoB,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,UAA4B,EAC5B,UAA+B;IAE/B,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAwE,EACxE,UAA+B;IAE/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE;QAChE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"recorded-concerns.js","sourceRoot":"","sources":["../../src/delivery/recorded-concerns.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,qEAAqE;AACrE,oEAAoE;AACpE,+DAA+D;AAC/D,2FAA2F;AAC3F,mFAAmF;AACnF,yEAAyE;AACzE,iFAAiF;AACjF,gBAAgB;AA2BhB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAK1D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,EAAU,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAwB,IAAI,GAAG,EAAU,CAAC;AAEnF,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAAC,UAA+B;IAChE,OAAO,UAAU,KAAK,4BAA4B,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAgE,EAChE,eAA2F;IAE3F,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9D,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACpG,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CACN,iEAAiE,OAAO,MAAM;gBAC9E,8CAA+C,GAAa,CAAC,OAAO,EAAE,CACvE,CAAC;YACF,OAAO,4BAA4B,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,UAA4B,EAC5B,UAA+B;IAE/B,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAwE,EACxE,UAA+B;IAE/B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE;QAChE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -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: 44 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/directive/directive-queue.ts
2
+ // Pinned by: 46 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/directive/directive-queue.ts
3
3
  // PINNED-BY-END
4
4
  /**
5
5
  * Directive queue: the pending spawn-directive store + its identity/guard logic.