crewly 1.20.143 → 1.20.145

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 (232) hide show
  1. package/config/constants.ts +59 -0
  2. package/config/index.ts +2 -0
  3. package/config/roles/orchestrator/prompt.md +9 -0
  4. package/config/skills/orchestrator/delegate-task/execute.sh +11 -0
  5. package/config/skills/orchestrator/delegate-task/execute.test.sh +38 -0
  6. package/config/skills/orchestrator/harness-login/SKILL.md +88 -0
  7. package/config/skills/orchestrator/harness-login/execute.sh +75 -0
  8. package/config/skills/orchestrator/harness-login/execute.test.sh +72 -0
  9. package/config/skills/orchestrator/reply-chat/SKILL.md +11 -1
  10. package/config/skills/orchestrator/reply-chat/execute.sh +13 -1
  11. package/config/skills/orchestrator/reply-slack/SKILL.md +1 -0
  12. package/config/skills/orchestrator/reply-slack/execute.sh +11 -2
  13. package/dist/backend/backend/src/constants.d.ts +55 -0
  14. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  15. package/dist/backend/backend/src/constants.js +36 -1
  16. package/dist/backend/backend/src/constants.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  18. package/dist/backend/backend/src/controllers/chat/chat.controller.js +36 -1
  19. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  20. package/dist/backend/backend/src/controllers/harness/harness.routes.d.ts +1 -0
  21. package/dist/backend/backend/src/controllers/harness/harness.routes.d.ts.map +1 -1
  22. package/dist/backend/backend/src/controllers/harness/harness.routes.js +3 -0
  23. package/dist/backend/backend/src/controllers/harness/harness.routes.js.map +1 -1
  24. package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts +61 -0
  25. package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts.map +1 -0
  26. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js +133 -0
  27. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js.map +1 -0
  28. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  29. package/dist/backend/backend/src/controllers/slack/slack.controller.js +69 -7
  30. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  31. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +4 -1
  32. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  33. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +9 -2
  34. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  35. package/dist/backend/backend/src/index.d.ts +8 -0
  36. package/dist/backend/backend/src/index.d.ts.map +1 -1
  37. package/dist/backend/backend/src/index.js +75 -3
  38. package/dist/backend/backend/src/index.js.map +1 -1
  39. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  40. package/dist/backend/backend/src/services/agent/agent-registration.service.js +28 -1
  41. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  42. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts +11 -1
  43. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
  44. package/dist/backend/backend/src/services/agent/codex-runtime.service.js +18 -0
  45. package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -1
  46. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +12 -0
  47. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +18 -3
  49. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +29 -0
  51. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +48 -0
  53. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  54. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
  56. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  57. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -0
  58. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +20 -0
  60. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +147 -5
  62. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  63. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +210 -20
  64. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  65. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts +87 -0
  66. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts.map +1 -0
  67. package/dist/backend/backend/src/services/harness/owner-login-request.js +191 -0
  68. package/dist/backend/backend/src/services/harness/owner-login-request.js.map +1 -0
  69. package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
  70. package/dist/backend/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
  71. package/dist/backend/backend/src/services/orc/orc-reply-route.service.js +300 -0
  72. package/dist/backend/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
  73. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +32 -2
  74. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +59 -5
  76. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  77. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +4 -2
  78. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +6 -3
  80. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  81. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts +68 -9
  82. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js +121 -11
  84. package/dist/backend/backend/src/services/slack/slack-relogin-dm.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/system/auto-update.service.d.ts +292 -0
  86. package/dist/backend/backend/src/services/system/auto-update.service.d.ts.map +1 -0
  87. package/dist/backend/backend/src/services/system/auto-update.service.js +590 -0
  88. package/dist/backend/backend/src/services/system/auto-update.service.js.map +1 -0
  89. package/dist/backend/backend/src/services/system/auto-update.utils.d.ts +265 -0
  90. package/dist/backend/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
  91. package/dist/backend/backend/src/services/system/auto-update.utils.js +397 -0
  92. package/dist/backend/backend/src/services/system/auto-update.utils.js.map +1 -0
  93. package/dist/backend/backend/src/services/system/version-check.service.d.ts +15 -1
  94. package/dist/backend/backend/src/services/system/version-check.service.d.ts.map +1 -1
  95. package/dist/backend/backend/src/services/system/version-check.service.js +21 -2
  96. package/dist/backend/backend/src/services/system/version-check.service.js.map +1 -1
  97. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
  98. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  99. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +14 -2
  100. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  101. package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/v3/cascade-request-status.js +16 -1
  103. package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -1
  104. package/dist/backend/backend/src/services/v3/request-completion.d.ts +128 -0
  105. package/dist/backend/backend/src/services/v3/request-completion.d.ts.map +1 -0
  106. package/dist/backend/backend/src/services/v3/request-completion.js +311 -0
  107. package/dist/backend/backend/src/services/v3/request-completion.js.map +1 -0
  108. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
  109. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +3 -0
  110. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
  111. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
  112. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +17 -3
  113. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
  114. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts +8 -0
  115. package/dist/backend/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  116. package/dist/backend/backend/src/services/v3/v3-data.service.js +11 -1
  117. package/dist/backend/backend/src/services/v3/v3-data.service.js.map +1 -1
  118. package/dist/backend/backend/src/types/settings.types.d.ts +8 -0
  119. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  120. package/dist/backend/backend/src/types/settings.types.js +4 -0
  121. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  122. package/dist/backend/backend/src/utils/agent-reply-filter.utils.d.ts +75 -0
  123. package/dist/backend/backend/src/utils/agent-reply-filter.utils.d.ts.map +1 -0
  124. package/dist/backend/backend/src/utils/agent-reply-filter.utils.js +127 -0
  125. package/dist/backend/backend/src/utils/agent-reply-filter.utils.js.map +1 -0
  126. package/dist/backend/build-info.json +2 -2
  127. package/dist/backend/config/constants.d.ts +56 -0
  128. package/dist/backend/config/constants.d.ts.map +1 -1
  129. package/dist/backend/config/constants.js +57 -0
  130. package/dist/backend/config/constants.js.map +1 -1
  131. package/dist/backend/config/index.d.ts +2 -2
  132. package/dist/backend/config/index.d.ts.map +1 -1
  133. package/dist/backend/config/index.js +2 -2
  134. package/dist/backend/config/index.js.map +1 -1
  135. package/dist/cli/backend/src/constants.d.ts +55 -0
  136. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  137. package/dist/cli/backend/src/constants.js +36 -1
  138. package/dist/cli/backend/src/constants.js.map +1 -1
  139. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  140. package/dist/cli/backend/src/services/agent/agent-registration.service.js +28 -1
  141. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  142. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts +11 -1
  143. package/dist/cli/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -1
  144. package/dist/cli/backend/src/services/agent/codex-runtime.service.js +18 -0
  145. package/dist/cli/backend/src/services/agent/codex-runtime.service.js.map +1 -1
  146. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +12 -0
  147. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  148. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +18 -3
  149. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  150. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts +29 -0
  151. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  152. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +48 -0
  153. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  154. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  155. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +1 -1
  156. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  157. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +15 -0
  158. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  159. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +20 -0
  160. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  161. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +147 -5
  162. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  163. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +210 -20
  164. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  165. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts +87 -0
  166. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts.map +1 -0
  167. package/dist/cli/backend/src/services/harness/owner-login-request.js +191 -0
  168. package/dist/cli/backend/src/services/harness/owner-login-request.js.map +1 -0
  169. package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts +217 -0
  170. package/dist/cli/backend/src/services/orc/orc-reply-route.service.d.ts.map +1 -0
  171. package/dist/cli/backend/src/services/orc/orc-reply-route.service.js +300 -0
  172. package/dist/cli/backend/src/services/orc/orc-reply-route.service.js.map +1 -0
  173. package/dist/cli/backend/src/services/system/auto-update.utils.d.ts +265 -0
  174. package/dist/cli/backend/src/services/system/auto-update.utils.d.ts.map +1 -0
  175. package/dist/cli/backend/src/services/system/auto-update.utils.js +397 -0
  176. package/dist/cli/backend/src/services/system/auto-update.utils.js.map +1 -0
  177. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +7 -1
  178. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  179. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +14 -2
  180. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  181. package/dist/cli/backend/src/services/v3/request-completion.d.ts +128 -0
  182. package/dist/cli/backend/src/services/v3/request-completion.d.ts.map +1 -0
  183. package/dist/cli/backend/src/services/v3/request-completion.js +311 -0
  184. package/dist/cli/backend/src/services/v3/request-completion.js.map +1 -0
  185. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts +8 -0
  186. package/dist/cli/backend/src/services/v3/v3-data.service.d.ts.map +1 -1
  187. package/dist/cli/backend/src/services/v3/v3-data.service.js +11 -1
  188. package/dist/cli/backend/src/services/v3/v3-data.service.js.map +1 -1
  189. package/dist/cli/backend/src/types/settings.types.d.ts +8 -0
  190. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  191. package/dist/cli/backend/src/types/settings.types.js +4 -0
  192. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  193. package/dist/cli/backend/src/utils/agent-reply-filter.utils.d.ts +75 -0
  194. package/dist/cli/backend/src/utils/agent-reply-filter.utils.d.ts.map +1 -0
  195. package/dist/cli/backend/src/utils/agent-reply-filter.utils.js +127 -0
  196. package/dist/cli/backend/src/utils/agent-reply-filter.utils.js.map +1 -0
  197. package/dist/cli/cli/src/commands/start.d.ts.map +1 -1
  198. package/dist/cli/cli/src/commands/start.js +14 -3
  199. package/dist/cli/cli/src/commands/start.js.map +1 -1
  200. package/dist/cli/cli/src/commands/update-status.d.ts +85 -0
  201. package/dist/cli/cli/src/commands/update-status.d.ts.map +1 -0
  202. package/dist/cli/cli/src/commands/update-status.js +162 -0
  203. package/dist/cli/cli/src/commands/update-status.js.map +1 -0
  204. package/dist/cli/cli/src/constants.d.ts +1 -1
  205. package/dist/cli/cli/src/constants.d.ts.map +1 -1
  206. package/dist/cli/cli/src/constants.js +1 -1
  207. package/dist/cli/cli/src/constants.js.map +1 -1
  208. package/dist/cli/cli/src/index.js +7 -0
  209. package/dist/cli/cli/src/index.js.map +1 -1
  210. package/dist/cli/cli/src/utils/backend-respawn.d.ts +50 -0
  211. package/dist/cli/cli/src/utils/backend-respawn.d.ts.map +1 -0
  212. package/dist/cli/cli/src/utils/backend-respawn.js +59 -0
  213. package/dist/cli/cli/src/utils/backend-respawn.js.map +1 -0
  214. package/dist/cli/config/constants.d.ts +56 -0
  215. package/dist/cli/config/constants.d.ts.map +1 -1
  216. package/dist/cli/config/constants.js +57 -0
  217. package/dist/cli/config/constants.js.map +1 -1
  218. package/dist/cli/config/index.d.ts +2 -2
  219. package/dist/cli/config/index.d.ts.map +1 -1
  220. package/dist/cli/config/index.js +2 -2
  221. package/dist/cli/config/index.js.map +1 -1
  222. package/frontend/dist/assets/{index-e05af897.js → index-71670b91.js} +22 -22
  223. package/frontend/dist/index.html +1 -1
  224. package/package.json +1 -1
  225. package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +39 -0
  226. package/packages/crewly-agent/src/runtime/agent-runner.service.ts +17 -17
  227. package/packages/crewly-agent/src/runtime/interactive-login-guard.test.ts +60 -0
  228. package/packages/crewly-agent/src/runtime/interactive-login-guard.ts +76 -0
  229. package/packages/crewly-agent/src/runtime/reply-tool-calls.test.ts +53 -0
  230. package/packages/crewly-agent/src/runtime/reply-tool-calls.ts +76 -0
  231. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +8 -0
  232. package/packages/crewly-agent/src/runtime/tool-registry.ts +14 -0
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Request completion — the single answer to "has this Request actually been
3
+ * delivered?"
4
+ *
5
+ * Three writers used to decide it independently (the reconciler's
6
+ * `reconcileRequestStatus`, the event-driven `cascadeRequestStatus`, and the
7
+ * heartbeat's `closeStaleRequest`), and each had a variant of the same hole:
8
+ * a Request counted as done as soon as its WorkItems were terminal and at
9
+ * least one of them said `verified` — whatever that item was.
10
+ *
11
+ * Incident 2026-09-26, Request d86b5faf ("Demand test: one-click deploy a
12
+ * ready-made AI team"): auto-decomposed into Plan → Execute → Review, all for
13
+ * the orchestrator, plus a direct item for Ella. The orchestrator re-routed
14
+ * the work to Ella as a NEW WorkItem (806dc528, which carried the request id
15
+ * only in its title), completed Plan and Execute as "re-routed / no execution
16
+ * needed", and cancelled Review and Ella's original item as duplicates. The
17
+ * reconciler then saw `{verified:2, cancelled:2}` and closed the Request while
18
+ * the only real work (806dc528) was still running.
19
+ *
20
+ * The rules here:
21
+ * 1. Cancelled items never count as delivered work.
22
+ * 2. A cancelled item that names its replacement (explicitly via
23
+ * `metadata.supersededBy` / a `succeeded_by` disposition, or in its
24
+ * cancel reason, e.g. "re-routed … as WI 806dc528") pulls that
25
+ * replacement into the Request's set — its status now decides.
26
+ * 3. Items that were split off the Request without the link (no
27
+ * `requestId`, but the full request id in their title/brief — the shape
28
+ * `delegate-task` produces when the orc pastes "[Request <id> | …]")
29
+ * belong to the Request too.
30
+ * 4. Plan/Review bookkeeping from auto-decomposition is not a deliverable.
31
+ * A Request whose only finished items are bookkeeping is not done.
32
+ *
33
+ * Pure functions only — callers pass in the pool snapshot.
34
+ *
35
+ * @module services/v3/request-completion
36
+ */
37
+ import type { WorkItem } from '../../types/v2/work-item.types.js';
38
+ /**
39
+ * Phases a planner can stamp on an auto-decomposed WorkItem
40
+ * (`metadata.decompositionPhase`). `plan` and `review` are bookkeeping around
41
+ * the work; `execute` is the work.
42
+ */
43
+ export type DecompositionPhase = 'plan' | 'execute' | 'review';
44
+ /** Metadata key for {@link DecompositionPhase}. */
45
+ export declare const DECOMPOSITION_PHASE_METADATA_KEY = "decompositionPhase";
46
+ /** Metadata key a canceller sets to name the item(s) that replace this one. */
47
+ export declare const SUPERSEDED_BY_METADATA_KEY = "supersededBy";
48
+ /**
49
+ * Whether a WorkItem is Plan/Review-style bookkeeping rather than a
50
+ * deliverable.
51
+ *
52
+ * @param wi - WorkItem to classify
53
+ * @returns True for SLA trackers and for auto-decomposed plan/review phases
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * isBookkeepingWorkItem({ ...wi, metadata: { decompositionPhase: 'plan' } }); // true
58
+ * ```
59
+ */
60
+ export declare function isBookkeepingWorkItem(wi: Pick<WorkItem, 'id' | 'title' | 'metadata'>): boolean;
61
+ /**
62
+ * Whether a cancelled WorkItem was cancelled because its work moved to another
63
+ * item (duplicate / superseded / re-routed).
64
+ *
65
+ * @param wi - WorkItem to test
66
+ * @returns True only for `cancelled` items with an explicit successor or a
67
+ * superseding cancel reason
68
+ */
69
+ export declare function isSupersededCancellation(wi: Pick<WorkItem, 'status' | 'cancelReason' | 'metadata'>): boolean;
70
+ /**
71
+ * Finds the WorkItems that carry on the work of a cancelled item.
72
+ *
73
+ * @param wi - The cancelled WorkItem
74
+ * @param allItems - Pool snapshot
75
+ * @returns Successor WorkItems (never `wi` itself)
76
+ */
77
+ export declare function findSuccessorWorkItems(wi: WorkItem, allItems: readonly WorkItem[]): WorkItem[];
78
+ /**
79
+ * Collects every WorkItem whose status bears on a Request's completion: its
80
+ * own items, unlinked items that name it, and — transitively — the
81
+ * replacements of any superseded cancellations among them.
82
+ *
83
+ * @param requestId - Request id
84
+ * @param allItems - Pool snapshot (all statuses)
85
+ * @returns The Request's effective WorkItem set, own items first
86
+ *
87
+ * @example
88
+ * ```typescript
89
+ * const items = collectRequestWorkItems(request.id, await pool.getAllItems());
90
+ * ```
91
+ */
92
+ export declare function collectRequestWorkItems(requestId: string, allItems: readonly WorkItem[]): WorkItem[];
93
+ /**
94
+ * Outcome of {@link evaluateRequestCompletion}.
95
+ *
96
+ * - `complete`: every live item is done/verified and at least one of them is
97
+ * a real deliverable.
98
+ * - `in_progress`: some live item is not finished yet.
99
+ * - `bookkeeping_only`: every live item is finished, but none of them is a
100
+ * deliverable — nothing was actually produced.
101
+ * - `nothing_live`: every item was cancelled; nothing is left to deliver.
102
+ */
103
+ export type RequestCompletionOutcome = 'complete' | 'in_progress' | 'bookkeeping_only' | 'nothing_live';
104
+ /** Result of {@link evaluateRequestCompletion}. */
105
+ export interface RequestCompletionEvaluation {
106
+ outcome: RequestCompletionOutcome;
107
+ /** Items that still count (not cancelled). */
108
+ liveItems: WorkItem[];
109
+ /** Live, finished, non-bookkeeping items. */
110
+ deliveredItems: WorkItem[];
111
+ /** One-line explanation for logs and correction reasons. */
112
+ reason: string;
113
+ }
114
+ /**
115
+ * Decides whether a Request's work was actually delivered.
116
+ *
117
+ * @param items - The Request's effective WorkItems (see
118
+ * {@link collectRequestWorkItems})
119
+ * @returns The outcome plus the items that justify it
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const { outcome } = evaluateRequestCompletion(collectRequestWorkItems(id, all));
124
+ * if (outcome === 'complete') markDone();
125
+ * ```
126
+ */
127
+ export declare function evaluateRequestCompletion(items: readonly WorkItem[]): RequestCompletionEvaluation;
128
+ //# sourceMappingURL=request-completion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-completion.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-completion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAGlE;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D,mDAAmD;AACnD,eAAO,MAAM,gCAAgC,uBAAuB,CAAC;AAErE,+EAA+E;AAC/E,eAAO,MAAM,0BAA0B,iBAAiB,CAAC;AA8CzD;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,CAAC,GAAG,OAAO,CAO9F;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,UAAU,CAAC,GACzD,OAAO,CAIT;AAsCD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAY9F;AAgBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAsBpG;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,GAAG,UAAU,GAAG,aAAa,GAAG,kBAAkB,GAAG,cAAc,CAAC;AAExG,mDAAmD;AACnD,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,wBAAwB,CAAC;IAClC,8CAA8C;IAC9C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,6CAA6C;IAC7C,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,2BAA2B,CA6CjG"}
@@ -0,0 +1,311 @@
1
+ /**
2
+ * Request completion — the single answer to "has this Request actually been
3
+ * delivered?"
4
+ *
5
+ * Three writers used to decide it independently (the reconciler's
6
+ * `reconcileRequestStatus`, the event-driven `cascadeRequestStatus`, and the
7
+ * heartbeat's `closeStaleRequest`), and each had a variant of the same hole:
8
+ * a Request counted as done as soon as its WorkItems were terminal and at
9
+ * least one of them said `verified` — whatever that item was.
10
+ *
11
+ * Incident 2026-09-26, Request d86b5faf ("Demand test: one-click deploy a
12
+ * ready-made AI team"): auto-decomposed into Plan → Execute → Review, all for
13
+ * the orchestrator, plus a direct item for Ella. The orchestrator re-routed
14
+ * the work to Ella as a NEW WorkItem (806dc528, which carried the request id
15
+ * only in its title), completed Plan and Execute as "re-routed / no execution
16
+ * needed", and cancelled Review and Ella's original item as duplicates. The
17
+ * reconciler then saw `{verified:2, cancelled:2}` and closed the Request while
18
+ * the only real work (806dc528) was still running.
19
+ *
20
+ * The rules here:
21
+ * 1. Cancelled items never count as delivered work.
22
+ * 2. A cancelled item that names its replacement (explicitly via
23
+ * `metadata.supersededBy` / a `succeeded_by` disposition, or in its
24
+ * cancel reason, e.g. "re-routed … as WI 806dc528") pulls that
25
+ * replacement into the Request's set — its status now decides.
26
+ * 3. Items that were split off the Request without the link (no
27
+ * `requestId`, but the full request id in their title/brief — the shape
28
+ * `delegate-task` produces when the orc pastes "[Request <id> | …]")
29
+ * belong to the Request too.
30
+ * 4. Plan/Review bookkeeping from auto-decomposition is not a deliverable.
31
+ * A Request whose only finished items are bookkeeping is not done.
32
+ *
33
+ * Pure functions only — callers pass in the pool snapshot.
34
+ *
35
+ * @module services/v3/request-completion
36
+ */
37
+ import { getWorkItemDisposition } from '../../types/v2/work-item.types.js';
38
+ /** Metadata key for {@link DecompositionPhase}. */
39
+ export const DECOMPOSITION_PHASE_METADATA_KEY = 'decompositionPhase';
40
+ /** Metadata key a canceller sets to name the item(s) that replace this one. */
41
+ export const SUPERSEDED_BY_METADATA_KEY = 'supersededBy';
42
+ /** Phases that do not, on their own, deliver anything to the owner. */
43
+ const BOOKKEEPING_PHASES = new Set(['plan', 'review']);
44
+ /**
45
+ * Title prefixes the generic planner (`V3DataService.generateTasks`) gives its
46
+ * bookkeeping items. Only consulted for auto-decomposed items that predate the
47
+ * explicit `decompositionPhase` stamp.
48
+ */
49
+ const LEGACY_BOOKKEEPING_TITLE = /^(Plan|Review|Investigate|Verify fix):\s/;
50
+ /**
51
+ * SLA "reply to the user" trackers. Housekeeping when the Request has other
52
+ * work; the whole deliverable when it does not (a question answered in chat).
53
+ */
54
+ const SLA_TRACKER_ID = /^request:.+:respond_to_user$/;
55
+ /**
56
+ * `slaResolvedReason` values meaning the orchestrator really replied. Kept in
57
+ * sync with `request-sla.subscriber.ts:VERIFIED_REPLY_REASONS`, minus
58
+ * `workitem_decompose` (the tracker was retired because the Request was split
59
+ * into other WorkItems — that is not a reply).
60
+ */
61
+ const SLA_REPLIED_REASONS = new Set(['orc_reply', 'orc_reply_recheck', 'chatv2_reply']);
62
+ /**
63
+ * Cancel reasons that mean "this work continues elsewhere". Used only to
64
+ * decide whether ids mentioned in the reason are worth following; a cancelled
65
+ * item never counts as delivered either way.
66
+ */
67
+ const SUPERSEDED_REASON = /\b(duplicate|dup|superseded|replaced|redundant|stale|re-?routed|re-?assigned|moved to|handed (?:off|over)|delegated to|instead)\b/i;
68
+ /**
69
+ * A WorkItem id, full or abbreviated. Agents routinely quote the first 8 hex
70
+ * characters ("WI 806dc528"), so short ids are resolved by unique prefix.
71
+ */
72
+ const WORK_ITEM_ID_TOKEN = /\b[0-9a-f]{8}(?:-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?\b/gi;
73
+ /** Upper bound on successor hops, so a cancel-reason cycle cannot loop. */
74
+ const MAX_SUCCESSOR_DEPTH = 5;
75
+ /** Statuses that mean the work was accepted. `done_by_worker` is not one. */
76
+ const DELIVERED_STATUSES = new Set(['done', 'verified']);
77
+ /**
78
+ * Whether a WorkItem is Plan/Review-style bookkeeping rather than a
79
+ * deliverable.
80
+ *
81
+ * @param wi - WorkItem to classify
82
+ * @returns True for SLA trackers and for auto-decomposed plan/review phases
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * isBookkeepingWorkItem({ ...wi, metadata: { decompositionPhase: 'plan' } }); // true
87
+ * ```
88
+ */
89
+ export function isBookkeepingWorkItem(wi) {
90
+ if (SLA_TRACKER_ID.test(wi.id))
91
+ return true;
92
+ const phase = wi.metadata?.[DECOMPOSITION_PHASE_METADATA_KEY];
93
+ if (typeof phase === 'string') {
94
+ return BOOKKEEPING_PHASES.has(phase);
95
+ }
96
+ return wi.metadata?.autoDecomposed === true && LEGACY_BOOKKEEPING_TITLE.test(wi.title);
97
+ }
98
+ /**
99
+ * Whether a cancelled WorkItem was cancelled because its work moved to another
100
+ * item (duplicate / superseded / re-routed).
101
+ *
102
+ * @param wi - WorkItem to test
103
+ * @returns True only for `cancelled` items with an explicit successor or a
104
+ * superseding cancel reason
105
+ */
106
+ export function isSupersededCancellation(wi) {
107
+ if (wi.status !== 'cancelled')
108
+ return false;
109
+ if (readExplicitSuccessorIds(wi).length > 0)
110
+ return true;
111
+ return typeof wi.cancelReason === 'string' && SUPERSEDED_REASON.test(wi.cancelReason);
112
+ }
113
+ /**
114
+ * Reads the explicitly recorded successor ids of a WorkItem.
115
+ *
116
+ * @param wi - WorkItem to read
117
+ * @returns Ids from `metadata.supersededBy` (string or string[]) and from a
118
+ * `succeeded_by` disposition
119
+ */
120
+ function readExplicitSuccessorIds(wi) {
121
+ const ids = [];
122
+ const raw = wi.metadata?.[SUPERSEDED_BY_METADATA_KEY];
123
+ if (typeof raw === 'string' && raw.trim())
124
+ ids.push(raw.trim());
125
+ if (Array.isArray(raw)) {
126
+ for (const v of raw)
127
+ if (typeof v === 'string' && v.trim())
128
+ ids.push(v.trim());
129
+ }
130
+ const disposition = getWorkItemDisposition(wi);
131
+ if (disposition?.kind === 'succeeded_by' && disposition.successorWorkItemId) {
132
+ ids.push(disposition.successorWorkItemId);
133
+ }
134
+ return ids;
135
+ }
136
+ /**
137
+ * Resolves an id or unique id prefix against the pool.
138
+ *
139
+ * @param token - Full id or an abbreviated (>= 8 char) prefix
140
+ * @param allItems - Pool snapshot
141
+ * @returns The single matching WorkItem, or null when absent or ambiguous
142
+ */
143
+ function resolveIdToken(token, allItems) {
144
+ const needle = token.toLowerCase();
145
+ const exact = allItems.find((wi) => wi.id.toLowerCase() === needle);
146
+ if (exact)
147
+ return exact;
148
+ const matches = allItems.filter((wi) => wi.id.toLowerCase().startsWith(needle));
149
+ return matches.length === 1 ? matches[0] : null;
150
+ }
151
+ /**
152
+ * Finds the WorkItems that carry on the work of a cancelled item.
153
+ *
154
+ * @param wi - The cancelled WorkItem
155
+ * @param allItems - Pool snapshot
156
+ * @returns Successor WorkItems (never `wi` itself)
157
+ */
158
+ export function findSuccessorWorkItems(wi, allItems) {
159
+ if (wi.status !== 'cancelled')
160
+ return [];
161
+ const tokens = new Set(readExplicitSuccessorIds(wi));
162
+ if (isSupersededCancellation(wi) && typeof wi.cancelReason === 'string') {
163
+ for (const m of wi.cancelReason.match(WORK_ITEM_ID_TOKEN) ?? [])
164
+ tokens.add(m);
165
+ }
166
+ const found = new Map();
167
+ for (const token of tokens) {
168
+ const hit = resolveIdToken(token, allItems);
169
+ if (hit && hit.id !== wi.id)
170
+ found.set(hit.id, hit);
171
+ }
172
+ return [...found.values()];
173
+ }
174
+ /**
175
+ * Whether an unlinked WorkItem names the Request in its own text.
176
+ *
177
+ * @param wi - Candidate WorkItem (must have no `requestId`)
178
+ * @param requestId - Full Request id
179
+ * @returns True when the title, description or brief contains the full id
180
+ */
181
+ function mentionsRequest(wi, requestId) {
182
+ if (wi.requestId)
183
+ return false;
184
+ return [wi.title, wi.description, wi.briefMarkdown].some((text) => typeof text === 'string' && text.includes(requestId));
185
+ }
186
+ /**
187
+ * Collects every WorkItem whose status bears on a Request's completion: its
188
+ * own items, unlinked items that name it, and — transitively — the
189
+ * replacements of any superseded cancellations among them.
190
+ *
191
+ * @param requestId - Request id
192
+ * @param allItems - Pool snapshot (all statuses)
193
+ * @returns The Request's effective WorkItem set, own items first
194
+ *
195
+ * @example
196
+ * ```typescript
197
+ * const items = collectRequestWorkItems(request.id, await pool.getAllItems());
198
+ * ```
199
+ */
200
+ export function collectRequestWorkItems(requestId, allItems) {
201
+ const collected = new Map();
202
+ for (const wi of allItems) {
203
+ if (wi.requestId === requestId)
204
+ collected.set(wi.id, wi);
205
+ }
206
+ for (const wi of allItems) {
207
+ if (!collected.has(wi.id) && mentionsRequest(wi, requestId))
208
+ collected.set(wi.id, wi);
209
+ }
210
+ let frontier = [...collected.values()];
211
+ for (let depth = 0; depth < MAX_SUCCESSOR_DEPTH && frontier.length > 0; depth++) {
212
+ const next = [];
213
+ for (const wi of frontier) {
214
+ for (const successor of findSuccessorWorkItems(wi, allItems)) {
215
+ if (collected.has(successor.id))
216
+ continue;
217
+ collected.set(successor.id, successor);
218
+ next.push(successor);
219
+ }
220
+ }
221
+ frontier = next;
222
+ }
223
+ return [...collected.values()];
224
+ }
225
+ /**
226
+ * Decides whether a Request's work was actually delivered.
227
+ *
228
+ * @param items - The Request's effective WorkItems (see
229
+ * {@link collectRequestWorkItems})
230
+ * @returns The outcome plus the items that justify it
231
+ *
232
+ * @example
233
+ * ```typescript
234
+ * const { outcome } = evaluateRequestCompletion(collectRequestWorkItems(id, all));
235
+ * if (outcome === 'complete') markDone();
236
+ * ```
237
+ */
238
+ export function evaluateRequestCompletion(items) {
239
+ const trackers = items.filter((wi) => SLA_TRACKER_ID.test(wi.id));
240
+ if (trackers.length > 0 && trackers.length === items.length) {
241
+ return evaluateReplyOnlyRequest(trackers);
242
+ }
243
+ const liveItems = items.filter((wi) => wi.status !== 'cancelled');
244
+ const deliveredItems = liveItems.filter((wi) => DELIVERED_STATUSES.has(wi.status) && !isBookkeepingWorkItem(wi));
245
+ if (liveItems.length === 0) {
246
+ return {
247
+ outcome: 'nothing_live',
248
+ liveItems,
249
+ deliveredItems,
250
+ reason: `all ${items.length} WorkItem(s) cancelled — nothing was delivered`,
251
+ };
252
+ }
253
+ const unfinished = liveItems.filter((wi) => !DELIVERED_STATUSES.has(wi.status));
254
+ if (unfinished.length > 0) {
255
+ return {
256
+ outcome: 'in_progress',
257
+ liveItems,
258
+ deliveredItems,
259
+ reason: `${unfinished.length} WorkItem(s) not finished: ${unfinished
260
+ .map((wi) => `${wi.id.slice(0, 8)}=${wi.status}`)
261
+ .join(', ')}`,
262
+ };
263
+ }
264
+ if (deliveredItems.length === 0) {
265
+ return {
266
+ outcome: 'bookkeeping_only',
267
+ liveItems,
268
+ deliveredItems,
269
+ reason: `only plan/review bookkeeping finished (${liveItems
270
+ .map((wi) => wi.id.slice(0, 8))
271
+ .join(', ')}) — no deliverable WorkItem was completed`,
272
+ };
273
+ }
274
+ return {
275
+ outcome: 'complete',
276
+ liveItems,
277
+ deliveredItems,
278
+ reason: `${deliveredItems.length} deliverable WorkItem(s) done/verified`,
279
+ };
280
+ }
281
+ /**
282
+ * Completion for a Request whose only WorkItems are SLA reply trackers: the
283
+ * reply is the deliverable. A tracker the SLA subscriber closed because the
284
+ * orchestrator answered counts as delivered even though it lands `cancelled`.
285
+ *
286
+ * @param trackers - The Request's SLA tracker WorkItems (non-empty)
287
+ * @returns The completion evaluation
288
+ */
289
+ function evaluateReplyOnlyRequest(trackers) {
290
+ const replied = trackers.filter((wi) => {
291
+ if (DELIVERED_STATUSES.has(wi.status))
292
+ return true;
293
+ const reason = wi.metadata?.slaResolvedReason;
294
+ return wi.status === 'cancelled' && typeof reason === 'string' && SLA_REPLIED_REASONS.has(reason);
295
+ });
296
+ const liveItems = trackers.filter((wi) => wi.status !== 'cancelled');
297
+ const pending = liveItems.filter((wi) => !DELIVERED_STATUSES.has(wi.status));
298
+ if (pending.length > 0) {
299
+ return { outcome: 'in_progress', liveItems, deliveredItems: replied, reason: 'reply to the user still pending' };
300
+ }
301
+ if (replied.length > 0) {
302
+ return { outcome: 'complete', liveItems, deliveredItems: replied, reason: 'the user was answered' };
303
+ }
304
+ return {
305
+ outcome: 'nothing_live',
306
+ liveItems,
307
+ deliveredItems: replied,
308
+ reason: 'reply tracker cancelled without a reply',
309
+ };
310
+ }
311
+ //# sourceMappingURL=request-completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-completion.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-completion.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-decompose.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-decompose.subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAU/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,cAAc,CAMnE,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,SAAS,EAE1D,CAAC;AAMX;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,sBAAsB;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,gDAAgD;IAChD,cAAc,EAAE,cAAc,CAAC;IAC/B,0CAA0C;IAC1C,QAAQ,EAAE,eAAe,CAAC;IAC1B,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACnD,gCAAgC;IAChC,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAQD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAC5C,IAAI,CAEN;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,0BAA0B,GAAG,IAAI,CAEjF;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8B;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0B;IAC/D,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;gBAEvD,IAAI,EAAE,sCAAsC;IASxD;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CACT,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,GACxB,0BAA0B;IAQ7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAgBb;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;;;;OAKG;IACI,+BAA+B,IAAI,WAAW,CAAC,MAAM,CAAC;IAQ7D;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB,CAmH1B;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAwEvB;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;CAwBrB"}
1
+ {"version":3,"file":"request-decompose.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-decompose.subscriber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,mCAAmC,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAW/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,4BAA4B,EAAE,WAAW,CAAC,cAAc,CAMnE,CAAC;AAMH;;;GAGG;AACH,eAAO,MAAM,mCAAmC,EAAE,SAAS,SAAS,EAE1D,CAAC;AAMX;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,sBAAsB;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,gDAAgD;IAChD,cAAc,EAAE,cAAc,CAAC;IAC/B,0CAA0C;IAC1C,QAAQ,EAAE,eAAe,CAAC;IAC1B,gDAAgD;IAChD,oBAAoB,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACnD,gCAAgC;IAChC,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAQD;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,0BAA0B,GAAG,IAAI,GAC5C,IAAI,CAEN;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,0BAA0B,GAAG,IAAI,CAEjF;AAMD;;;;;;;;;;GAUG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8B;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0B;IAC/D,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;gBAEvD,IAAI,EAAE,sCAAsC;IASxD;;;;;;;OAOG;IACH,MAAM,CAAC,IAAI,CACT,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,GACxB,0BAA0B;IAQ7B;;OAEG;IACH,KAAK,IAAI,IAAI;IAgBb;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;;;;OAKG;IACI,+BAA+B,IAAI,WAAW,CAAC,MAAM,CAAC;IAQ7D;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB,CAmH1B;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IAwEvB;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;CAwBrB"}
@@ -81,6 +81,7 @@ import { LoggerService } from '../core/logger.service.js';
81
81
  import { ORCHESTRATOR_SESSION_NAME } from '../../constants.js';
82
82
  import { createWorkItem } from '../../types/v2/work-item.types.js';
83
83
  import { SLA_TRACKER_ID_PATTERN } from './workitem-dispatch.subscriber.js';
84
+ import { DECOMPOSITION_PHASE_METADATA_KEY } from './request-completion.js';
84
85
  // ---------------------------------------------------------------------------
85
86
  // Filter rules
86
87
  // ---------------------------------------------------------------------------
@@ -468,6 +469,8 @@ export class RequestDecomposeSubscriber {
468
469
  planStrategy: 'derived-from-RequestService.plan',
469
470
  priority: task.priority,
470
471
  acceptanceCriteria: task.acceptanceCriteria,
472
+ // Lets request-completion tell Plan/Review bookkeeping from the work.
473
+ ...(task.phase ? { [DECOMPOSITION_PHASE_METADATA_KEY]: task.phase } : {}),
471
474
  },
472
475
  });
473
476
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request-decompose.subscriber.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-decompose.subscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-decompose.subscriber.js","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-decompose.subscriber.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-status-update.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-status-update.subscriber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-status-update.subscriber.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/v3/request-status-update.subscriber.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ import { LoggerService } from '../core/logger.service.js';
40
40
  import { TERMINAL_WORK_ITEM_STATUSES } from '../../types/v2/work-item.types.js';
41
41
  import { TERMINAL_REQUEST_STATUSES, isValidRequestTransition } from '../../types/v2/index.js';
42
42
  import { extractSlackChannelId, extractSlackThreadTs } from './request-sla.subscriber.js';
43
+ import { collectRequestWorkItems, evaluateRequestCompletion } from './request-completion.js';
43
44
  /**
44
45
  * WorkItem statuses that count as "terminal" for the heartbeat's
45
46
  * is-this-Request-actually-still-in-flight check.
@@ -301,7 +302,9 @@ export class RequestStatusUpdateSubscriber {
301
302
  // nothing has changed since we last said "still 3 blocked",
302
303
  // so saying it again is noise.
303
304
  const items = await this.taskPool.getAllItems();
304
- const childWIs = items.filter((wi) => wi.requestId === r.id);
305
+ // Effective set — includes the replacement of a superseded item, so a
306
+ // re-routed Request is not "all terminal" while the new item runs.
307
+ const childWIs = collectRequestWorkItems(r.id, items);
305
308
  if (childWIs.length === 0)
306
309
  continue;
307
310
  // All-terminal guard — when every child WI is terminal but the
@@ -518,8 +521,19 @@ export class RequestStatusUpdateSubscriber {
518
521
  // upstream (it's not in TERMINAL_WORKITEM_STATUSES anymore — see
519
522
  // the constant definition for the rationale). So success only
520
523
  // comes from `done` or `verified` here.
521
- const hasSuccess = childWIs.some((wi) => wi.status === 'done' || wi.status === 'verified');
522
- const target = hasSuccess ? 'done' : 'cancelled';
524
+ // "Some child succeeded" is not "delivered": a verified Plan next to a
525
+ // cancelled Execute is still nothing built (Request d86b5faf,
526
+ // 2026-09-26). Same rule as the reconciler and the cascade.
527
+ const completion = evaluateRequestCompletion(childWIs);
528
+ if (completion.outcome === 'bookkeeping_only' || completion.outcome === 'in_progress') {
529
+ this.logger.warn('Heartbeat: not closing Request — no deliverable WorkItem was completed', {
530
+ requestId: request.id,
531
+ outcome: completion.outcome,
532
+ reason: completion.reason,
533
+ });
534
+ return;
535
+ }
536
+ const target = completion.outcome === 'complete' ? 'done' : 'cancelled';
523
537
  const log = (extra = {}) => ({
524
538
  requestId: request.id,
525
539
  previousStatus: request.status,