@telora/daemon 0.21.83 → 0.21.134

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 (267) hide show
  1. package/build-info.json +10 -3
  2. package/dist/audit/audit-hooks.d.ts +106 -0
  3. package/dist/audit/audit-hooks.d.ts.map +1 -1
  4. package/dist/audit/audit-hooks.js +149 -17
  5. package/dist/audit/audit-hooks.js.map +1 -1
  6. package/dist/ci/ci-sensor-loop.d.ts +6 -0
  7. package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
  8. package/dist/ci/ci-sensor-loop.js +50 -3
  9. package/dist/ci/ci-sensor-loop.js.map +1 -1
  10. package/dist/ci/ci-status.d.ts +63 -11
  11. package/dist/ci/ci-status.d.ts.map +1 -1
  12. package/dist/ci/ci-status.js +94 -27
  13. package/dist/ci/ci-status.js.map +1 -1
  14. package/dist/completion/coverage-drift-state.d.ts +29 -2
  15. package/dist/completion/coverage-drift-state.d.ts.map +1 -1
  16. package/dist/completion/coverage-drift-state.js +42 -2
  17. package/dist/completion/coverage-drift-state.js.map +1 -1
  18. package/dist/completion/coverage-stabilized.d.ts +58 -0
  19. package/dist/completion/coverage-stabilized.d.ts.map +1 -0
  20. package/dist/completion/coverage-stabilized.js +84 -0
  21. package/dist/completion/coverage-stabilized.js.map +1 -0
  22. package/dist/completion/delivery-advancement-guard.d.ts +21 -0
  23. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  24. package/dist/completion/delivery-advancement-guard.js +31 -3
  25. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  26. package/dist/completion/event-escalations.d.ts +15 -0
  27. package/dist/completion/event-escalations.d.ts.map +1 -1
  28. package/dist/completion/event-escalations.js +42 -4
  29. package/dist/completion/event-escalations.js.map +1 -1
  30. package/dist/completion/event-phases.d.ts.map +1 -1
  31. package/dist/completion/event-phases.js +10 -5
  32. package/dist/completion/event-phases.js.map +1 -1
  33. package/dist/completion/machine-remediable-demotion.d.ts +74 -0
  34. package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
  35. package/dist/completion/machine-remediable-demotion.js +147 -0
  36. package/dist/completion/machine-remediable-demotion.js.map +1 -0
  37. package/dist/completion/review-exit-escalations.d.ts +36 -1
  38. package/dist/completion/review-exit-escalations.d.ts.map +1 -1
  39. package/dist/completion/review-exit-escalations.js +81 -0
  40. package/dist/completion/review-exit-escalations.js.map +1 -1
  41. package/dist/completion/review-exit-phase.d.ts +4 -2
  42. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  43. package/dist/completion/review-exit-phase.js +49 -54
  44. package/dist/completion/review-exit-phase.js.map +1 -1
  45. package/dist/completion/settle-injection-sweep.d.ts +55 -0
  46. package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
  47. package/dist/completion/settle-injection-sweep.js +88 -0
  48. package/dist/completion/settle-injection-sweep.js.map +1 -0
  49. package/dist/completion/state-cascade.d.ts.map +1 -1
  50. package/dist/completion/state-cascade.js +41 -0
  51. package/dist/completion/state-cascade.js.map +1 -1
  52. package/dist/completion/status-advance-phase.d.ts.map +1 -1
  53. package/dist/completion/status-advance-phase.js +28 -30
  54. package/dist/completion/status-advance-phase.js.map +1 -1
  55. package/dist/completion/team-lifecycle.d.ts +42 -0
  56. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  57. package/dist/completion/team-lifecycle.js +79 -2
  58. package/dist/completion/team-lifecycle.js.map +1 -1
  59. package/dist/delivery/delivery-lifecycle.d.ts +19 -33
  60. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  61. package/dist/delivery/delivery-lifecycle.js +26 -160
  62. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  63. package/dist/delivery/delivery-merge-ops.d.ts +46 -0
  64. package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
  65. package/dist/delivery/delivery-merge-ops.js +154 -0
  66. package/dist/delivery/delivery-merge-ops.js.map +1 -0
  67. package/dist/delivery/delivery-reconciler-apply.d.ts +108 -66
  68. package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
  69. package/dist/delivery/delivery-reconciler-apply.js +87 -61
  70. package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
  71. package/dist/delivery/delivery-reconciler.d.ts +7 -2
  72. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  73. package/dist/delivery/delivery-reconciler.js +34 -5
  74. package/dist/delivery/delivery-reconciler.js.map +1 -1
  75. package/dist/delivery/external-hold-surface.d.ts +32 -0
  76. package/dist/delivery/external-hold-surface.d.ts.map +1 -0
  77. package/dist/delivery/external-hold-surface.js +67 -0
  78. package/dist/delivery/external-hold-surface.js.map +1 -0
  79. package/dist/delivery/external-hold.d.ts +38 -0
  80. package/dist/delivery/external-hold.d.ts.map +1 -1
  81. package/dist/delivery/external-hold.js +69 -6
  82. package/dist/delivery/external-hold.js.map +1 -1
  83. package/dist/delivery/operator-hold.d.ts +1 -2
  84. package/dist/delivery/operator-hold.d.ts.map +1 -1
  85. package/dist/delivery/operator-hold.js +1 -2
  86. package/dist/delivery/operator-hold.js.map +1 -1
  87. package/dist/delivery/paused-revival.d.ts +140 -0
  88. package/dist/delivery/paused-revival.d.ts.map +1 -0
  89. package/dist/delivery/paused-revival.js +229 -0
  90. package/dist/delivery/paused-revival.js.map +1 -0
  91. package/dist/delivery/wait-reachability.d.ts +149 -0
  92. package/dist/delivery/wait-reachability.d.ts.map +1 -0
  93. package/dist/delivery/wait-reachability.js +193 -0
  94. package/dist/delivery/wait-reachability.js.map +1 -0
  95. package/dist/directive/close-loop-dispatcher.d.ts +16 -263
  96. package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
  97. package/dist/directive/close-loop-dispatcher.js +21 -259
  98. package/dist/directive/close-loop-dispatcher.js.map +1 -1
  99. package/dist/directive/directive-dispatch.d.ts +19 -0
  100. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  101. package/dist/directive/directive-dispatch.js +18 -0
  102. package/dist/directive/directive-dispatch.js.map +1 -1
  103. package/dist/directive/directive-executor.d.ts +1 -3
  104. package/dist/directive/directive-executor.d.ts.map +1 -1
  105. package/dist/directive/directive-executor.js +23 -21
  106. package/dist/directive/directive-executor.js.map +1 -1
  107. package/dist/directive/phase-sync.d.ts +28 -15
  108. package/dist/directive/phase-sync.d.ts.map +1 -1
  109. package/dist/directive/phase-sync.js +28 -36
  110. package/dist/directive/phase-sync.js.map +1 -1
  111. package/dist/directive/resolver-dispatch.d.ts +19 -92
  112. package/dist/directive/resolver-dispatch.d.ts.map +1 -1
  113. package/dist/directive/resolver-dispatch.js +19 -65
  114. package/dist/directive/resolver-dispatch.js.map +1 -1
  115. package/dist/focus/focus-engine.d.ts.map +1 -1
  116. package/dist/focus/focus-engine.js +26 -0
  117. package/dist/focus/focus-engine.js.map +1 -1
  118. package/dist/focus/focus-executor.d.ts.map +1 -1
  119. package/dist/focus/focus-executor.js +290 -256
  120. package/dist/focus/focus-executor.js.map +1 -1
  121. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  122. package/dist/focus/focus-loop-registry.js +43 -1
  123. package/dist/focus/focus-loop-registry.js.map +1 -1
  124. package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
  125. package/dist/focus/focus-respawn-guard.js +11 -2
  126. package/dist/focus/focus-respawn-guard.js.map +1 -1
  127. package/dist/focus/focus-team-state.d.ts +11 -0
  128. package/dist/focus/focus-team-state.d.ts.map +1 -1
  129. package/dist/focus/focus-team-state.js +17 -0
  130. package/dist/focus/focus-team-state.js.map +1 -1
  131. package/dist/focus/listener-auto-advance.d.ts +13 -1
  132. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  133. package/dist/focus/listener-auto-advance.js +112 -76
  134. package/dist/focus/listener-auto-advance.js.map +1 -1
  135. package/dist/focus/listener.d.ts.map +1 -1
  136. package/dist/focus/listener.js +141 -75
  137. package/dist/focus/listener.js.map +1 -1
  138. package/dist/focus/tick-deadline.d.ts +55 -0
  139. package/dist/focus/tick-deadline.d.ts.map +1 -0
  140. package/dist/focus/tick-deadline.js +91 -0
  141. package/dist/focus/tick-deadline.js.map +1 -0
  142. package/dist/focus-stage-lifecycle/index.d.ts +18 -25
  143. package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
  144. package/dist/focus-stage-lifecycle/index.js +26 -38
  145. package/dist/focus-stage-lifecycle/index.js.map +1 -1
  146. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
  147. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
  148. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
  149. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
  150. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
  151. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  152. package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
  153. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  154. package/dist/git/merge.d.ts.map +1 -1
  155. package/dist/git/merge.js +12 -3
  156. package/dist/git/merge.js.map +1 -1
  157. package/dist/guard/condition-evaluators.d.ts +9 -0
  158. package/dist/guard/condition-evaluators.d.ts.map +1 -1
  159. package/dist/guard/condition-evaluators.js +15 -0
  160. package/dist/guard/condition-evaluators.js.map +1 -1
  161. package/dist/guard/guard-evaluator.d.ts +17 -1
  162. package/dist/guard/guard-evaluator.d.ts.map +1 -1
  163. package/dist/guard/guard-evaluator.js +61 -2
  164. package/dist/guard/guard-evaluator.js.map +1 -1
  165. package/dist/guard/trigger-executor.d.ts +30 -18
  166. package/dist/guard/trigger-executor.d.ts.map +1 -1
  167. package/dist/guard/trigger-executor.js +55 -31
  168. package/dist/guard/trigger-executor.js.map +1 -1
  169. package/dist/prompt/team-prompt-base.d.ts +1 -1
  170. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  171. package/dist/prompt/team-prompt-base.js +1 -1
  172. package/dist/prompt/team-prompt-base.js.map +1 -1
  173. package/dist/prompt-sections/persona-sections.d.ts +0 -32
  174. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  175. package/dist/prompt-sections/persona-sections.js +19 -88
  176. package/dist/prompt-sections/persona-sections.js.map +1 -1
  177. package/dist/queries/deliveries.d.ts +33 -0
  178. package/dist/queries/deliveries.d.ts.map +1 -1
  179. package/dist/queries/deliveries.js +7 -0
  180. package/dist/queries/deliveries.js.map +1 -1
  181. package/dist/queries/focuses.d.ts +46 -0
  182. package/dist/queries/focuses.d.ts.map +1 -1
  183. package/dist/queries/focuses.js +60 -0
  184. package/dist/queries/focuses.js.map +1 -1
  185. package/dist/queries/guards.d.ts +10 -0
  186. package/dist/queries/guards.d.ts.map +1 -1
  187. package/dist/queries/guards.js +14 -1
  188. package/dist/queries/guards.js.map +1 -1
  189. package/dist/queries/issues.d.ts +65 -1
  190. package/dist/queries/issues.d.ts.map +1 -1
  191. package/dist/queries/issues.js +135 -2
  192. package/dist/queries/issues.js.map +1 -1
  193. package/dist/queries/schemas.d.ts +53 -0
  194. package/dist/queries/schemas.d.ts.map +1 -1
  195. package/dist/queries/schemas.js +38 -0
  196. package/dist/queries/schemas.js.map +1 -1
  197. package/dist/queries/verification.d.ts +5 -6
  198. package/dist/queries/verification.d.ts.map +1 -1
  199. package/dist/queries/verification.js +5 -6
  200. package/dist/queries/verification.js.map +1 -1
  201. package/dist/resolvers/loop-persona.d.ts +1 -11
  202. package/dist/resolvers/loop-persona.d.ts.map +1 -1
  203. package/dist/resolvers/loop-persona.js +2 -16
  204. package/dist/resolvers/loop-persona.js.map +1 -1
  205. package/dist/shell/heartbeat.d.ts +7 -0
  206. package/dist/shell/heartbeat.d.ts.map +1 -1
  207. package/dist/shell/heartbeat.js +1 -1
  208. package/dist/shell/heartbeat.js.map +1 -1
  209. package/dist/shell/unified-shell-provisioning.d.ts +40 -0
  210. package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
  211. package/dist/shell/unified-shell-provisioning.js +72 -0
  212. package/dist/shell/unified-shell-provisioning.js.map +1 -1
  213. package/dist/shell/unified-shell.d.ts.map +1 -1
  214. package/dist/shell/unified-shell.js +18 -1
  215. package/dist/shell/unified-shell.js.map +1 -1
  216. package/dist/spawn/helpers.d.ts.map +1 -1
  217. package/dist/spawn/helpers.js +6 -1
  218. package/dist/spawn/helpers.js.map +1 -1
  219. package/dist/spawn/process-spawn.d.ts.map +1 -1
  220. package/dist/spawn/process-spawn.js +7 -0
  221. package/dist/spawn/process-spawn.js.map +1 -1
  222. package/dist/spawn/respawn-cycle-escalation.d.ts +41 -0
  223. package/dist/spawn/respawn-cycle-escalation.d.ts.map +1 -0
  224. package/dist/spawn/respawn-cycle-escalation.js +83 -0
  225. package/dist/spawn/respawn-cycle-escalation.js.map +1 -0
  226. package/dist/spawn/spawn-cooldown.d.ts +119 -2
  227. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  228. package/dist/spawn/spawn-cooldown.js +120 -10
  229. package/dist/spawn/spawn-cooldown.js.map +1 -1
  230. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  231. package/dist/spawn/spawn-decision.js +33 -1
  232. package/dist/spawn/spawn-decision.js.map +1 -1
  233. package/dist/testing/fixtures/index.d.ts +64 -0
  234. package/dist/testing/fixtures/index.d.ts.map +1 -0
  235. package/dist/testing/fixtures/index.js +220 -0
  236. package/dist/testing/fixtures/index.js.map +1 -0
  237. package/dist/update/build-info.d.ts +1 -0
  238. package/dist/update/build-info.d.ts.map +1 -1
  239. package/dist/update/build-info.js +1 -1
  240. package/dist/update/build-info.js.map +1 -1
  241. package/dist/verify/stall-detector-config.d.ts +8 -0
  242. package/dist/verify/stall-detector-config.d.ts.map +1 -1
  243. package/dist/verify/stall-detector-config.js +40 -0
  244. package/dist/verify/stall-detector-config.js.map +1 -1
  245. package/dist/verify/stall-detectors.d.ts +57 -14
  246. package/dist/verify/stall-detectors.d.ts.map +1 -1
  247. package/dist/verify/stall-detectors.js +72 -55
  248. package/dist/verify/stall-detectors.js.map +1 -1
  249. package/dist/verify/verification-feedback.d.ts +3 -4
  250. package/dist/verify/verification-feedback.d.ts.map +1 -1
  251. package/dist/verify/verification-feedback.js +3 -12
  252. package/dist/verify/verification-feedback.js.map +1 -1
  253. package/dist/workflow/gate-failure-policy.d.ts +48 -0
  254. package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
  255. package/dist/workflow/gate-failure-policy.js +57 -0
  256. package/dist/workflow/gate-failure-policy.js.map +1 -0
  257. package/dist/workflow/pipeline-config.d.ts +2 -2
  258. package/dist/workflow/pipeline-config.js +2 -2
  259. package/package.json +3 -3
  260. package/dist/directive/close-loop-stage.d.ts +0 -50
  261. package/dist/directive/close-loop-stage.d.ts.map +0 -1
  262. package/dist/directive/close-loop-stage.js +0 -210
  263. package/dist/directive/close-loop-stage.js.map +0 -1
  264. package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
  265. package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
  266. package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
  267. package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
@@ -11,17 +11,14 @@
11
11
  * - mergeDeliveryBranch(): merge a branch to integration
12
12
  * - advanceDeliveryStage(): update delivery to its next workflow stage
13
13
  */
14
- import { updateDeliveryStatus, updateDeliveryMergeCommitSha } from '../queries/deliveries.js';
14
+ import { updateDeliveryStatus } from '../queries/deliveries.js';
15
15
  import { createEscalation } from '../queries/issues.js';
16
16
  import { createTransitionEvaluation } from '../queries/guards.js';
17
- import { mergeToIntegration } from '../git/exec.js';
18
- import { runGitSync, getMergeWorktreePath } from '../git/index.js';
19
17
  import { getStageByName, determineTransition } from '../workflow/workflow-engine.js';
20
18
  import { evaluateGuardsAtTransition, GuardEvaluationError } from '../guard/guard-evaluator.js';
21
19
  import { executeTriggers } from '../guard/trigger-executor.js';
22
20
  import { withRetry, ESCALATION_REASONS, ESCALATION_DISPOSITIONS, DELIVERY_STATUS } from '@telora/daemon-core';
23
- import { resolveReconciledWrite } from './delivery-reconciler-apply.js';
24
- import { recordFocusMerge } from '../queries/deliveries.js';
21
+ import { resolveReconciledWrite, advanceReconcileInput } from './delivery-reconciler-apply.js';
25
22
  import { getFocusWorktree } from '../focus/focus-worktree-state.js';
26
23
  import { deriveCompletionArtifactsFromWorktree } from './delivery-artifacts.js';
27
24
  import { createLogger } from '../shell/log.js';
@@ -129,10 +126,13 @@ export async function advanceDeliveryStage(params) {
129
126
  attemptCount: sessionCount,
130
127
  maxRetries: 5,
131
128
  });
132
- // Evaluate guards if there's a transition to a new stage
129
+ // Evaluate guards if there's a transition to a new stage. The measurement is
130
+ // the same evaluateGuardsForDeliveryTransition the teamless path uses, behind
131
+ // an injectable seam so a parity test can exercise both paths (TEL-2).
132
+ const _measureGuard = params.measureGuard ?? evaluateGuardsForDeliveryTransition;
133
133
  let guardOutcome = null;
134
134
  if (transition.nextStage && transition.workflowTransition) {
135
- guardOutcome = await evaluateGuardsForDeliveryTransition({
135
+ guardOutcome = await _measureGuard({
136
136
  deliveryId,
137
137
  organizationId,
138
138
  workflowTransition: transition.workflowTransition,
@@ -162,15 +162,13 @@ export async function advanceDeliveryStage(params) {
162
162
  deliveryStatus = queuedStage?.name ?? DELIVERY_STATUS.QUEUED;
163
163
  deliveryStageId = queuedStage?.id;
164
164
  }
165
- // Single-writer reconciler self-check + authority. advanceDeliveryStage is the
166
- // guarded graph writer for coding -> verify/paused (and the re-queue fallback);
167
- // the reconciler models exactly this from (currentStatus, all-done, committed,
168
- // guardVerdict). We run it for the reconciler-driven from-statuses, log any
169
- // [reconciler-divergence], and (flag-gated, default-ON) write the reconciler's
170
- // target. In parity the target equals the legacy decision, so this is a no-op;
171
- // worktree-commit safety still ran on the daemon path before this call. The
172
- // verify -> done routing is owned by the review-exit path, not advanceDeliveryStage,
173
- // so verify is intentionally excluded here.
165
+ // Single-writer reconciler authority. advanceDeliveryStage is the guarded
166
+ // graph writer for coding -> verify/paused (and the re-queue fallback); the
167
+ // reconciler models exactly this from (currentStatus, all-done, committed,
168
+ // guardVerdict), so it resolves the target for the reconciler-driven
169
+ // from-statuses. Worktree-commit safety still ran on the daemon path before
170
+ // this call. The verify -> done routing is owned by the review-exit path, not
171
+ // advanceDeliveryStage, so verify is intentionally excluded here.
174
172
  const RECONCILER_FROM = new Set([
175
173
  DELIVERY_STATUS.CODING, DELIVERY_STATUS.QUEUED, DELIVERY_STATUS.VERIFY_FAILED,
176
174
  ]);
@@ -180,19 +178,13 @@ export async function advanceDeliveryStage(params) {
180
178
  // queued-branch scoping gate reachable: a zero-issue queued delivery
181
179
  // arrives here with an empty list and the reconciler holds it in queued.
182
180
  const decision = resolveReconciledWrite({
183
- site: 'advance-stage',
184
- deliveryId,
185
- deliveryName,
186
- legacyTarget: deliveryStatus,
187
- input: {
181
+ // Single-site advance input; the guard verdict is the MEASURED one
182
+ // (guardBlocked came from measureGuard above), never a bypassing null.
183
+ input: advanceReconcileInput({
188
184
  currentStatus: fromStatus,
189
185
  issues: reconcilerIssues,
190
- // Worktree-commit safety is enforced by ensureWorktreeCommittedBeforeAdvance
191
- // before this call; by here the worktree is committed.
192
- gitState: { worktreeCommitted: true },
193
186
  guardVerdict: { blocked: guardBlocked },
194
- reviewState: null,
195
- },
187
+ }),
196
188
  });
197
189
  if (decision.target !== deliveryStatus) {
198
190
  deliveryStatus = decision.target;
@@ -229,8 +221,9 @@ export async function advanceDeliveryStage(params) {
229
221
  const transitionRecord = fromStatus !== deliveryStatus
230
222
  ? { organizationId, fromStatus: fromStatus ?? null }
231
223
  : undefined;
224
+ const _updateDeliveryStatus = params.updateDeliveryStatus ?? updateDeliveryStatus;
232
225
  try {
233
- await updateDeliveryStatus(deliveryId, deliveryStatus, deliveryStageId, gateStateForUpdate, completionArtifactsForUpdate, transitionRecord);
226
+ await _updateDeliveryStatus(deliveryId, deliveryStatus, deliveryStageId, gateStateForUpdate, completionArtifactsForUpdate, transitionRecord);
234
227
  log.info(`Delivery "${deliveryName}" set to ${deliveryStatus}`);
235
228
  }
236
229
  catch (err) {
@@ -245,139 +238,12 @@ export async function advanceDeliveryStage(params) {
245
238
  exitReason,
246
239
  };
247
240
  }
248
- // ── Merge operations ────────────────────────────────────────────────
249
- /**
250
- * Merge a delivery's branch to the integration branch.
251
- *
252
- * Handles:
253
- * - Merge to integration
254
- * - Conflict escalation
255
- * - Git state reporting
256
- */
257
- export async function mergeDeliveryBranch(params) {
258
- const { config, branchName, deliveryId, deliveryName, organizationId, sessionId, workflow, focusId } = params;
259
- log.info(`Attempting to merge ${branchName} into ${config.integrationBranch}...`);
260
- const onRollbackFailure = (details) => {
261
- withRetry(() => createEscalation({
262
- organizationId,
263
- sessionId: sessionId ?? '',
264
- issueId: null,
265
- reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
266
- disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
267
- anchor: { deliveryId, focusId, branch: branchName },
268
- description: `CRITICAL: Push failed AND rollback failed. Integration branch is corrupt.\n\n` +
269
- `**Delivery:** ${deliveryName}\n` +
270
- `**Branch:** ${details.branch}\n` +
271
- `**Attempted rollback to:** ${details.attemptedRollbackRef}\n` +
272
- `**Current HEAD:** ${details.currentHead}\n\n` +
273
- `All merge operations are blocked until manual recovery.`,
274
- whatWasTried: `Push to origin failed for ${details.branch}. Attempted rollback to ${details.attemptedRollbackRef} also failed.`,
275
- helpNeeded: `Manually reset the branch: git reset --hard origin/${details.branch}. Then restart the daemon.`,
276
- }), { maxAttempts: 3, label: 'escalation-rollback-failure' }).catch((escErr) => {
277
- log.error(`CRITICAL: Failed to create escalation for rollback failure: ${escErr.message}`);
278
- });
279
- };
280
- const mergeResult = await mergeToIntegration({ config, branchName, deliveryName, deliveryId, onRollbackFailure });
281
- if (mergeResult.success) {
282
- const exitReason = `Merged to ${config.integrationBranch}.`;
283
- log.info(`Successfully merged ${branchName} to ${config.integrationBranch}`);
284
- // Note: merged_to_integration git state is reported by the caller
285
- // (mergeFocusBranch) for all deliveries in the focus to avoid duplicates.
286
- // Persist the merge commit SHA on the delivery record (fire-and-forget)
287
- if (mergeResult.commitSha) {
288
- updateDeliveryMergeCommitSha(deliveryId, mergeResult.commitSha).catch(err => log.warn(`[mergeCommitSha] Failed to record merge commit SHA:`, err.message));
289
- }
290
- // Record focus merge with constituent commits (fire-and-forget)
291
- if (focusId && mergeResult.commitSha) {
292
- const commitShas = extractConstituentCommits(config, branchName, mergeResult.preMergeRef);
293
- recordFocusMerge({
294
- organizationId,
295
- focusId,
296
- mergeCommitSha: mergeResult.commitSha,
297
- commitShas,
298
- branchName,
299
- // The pre-merge boundary bounds the merged contribution even when the
300
- // merge-back fast-forwarded (no merge commit) -- see the fast-forward-safe
301
- // source in resolveDeliveryDiffSource.
302
- ...(mergeResult.preMergeRef ? { preMergeRef: mergeResult.preMergeRef } : {}),
303
- }).catch(err => log.warn(`[focusMerge] Failed to record focus merge:`, err.message));
304
- }
305
- // A merge that recorded NO bookkeeping (its sha could not be observed) is a
306
- // fault, not a silent skip. merge.ts already emitted the loud RECORDED-NOTHING
307
- // FAULT at merge time; surface it here too so the write-site's silence -- the
308
- // exact place the ~19-minute-later gate blindness originates -- is broken.
309
- if (mergeResult.shaUnobserved) {
310
- log.warn(`[focusMerge] delivery ${deliveryId} on branch ${branchName} merged to ` +
311
- `${config.integrationBranch} but recorded NO bookkeeping (merge sha unobserved) -- ` +
312
- `verify evidence for this delivery will be unrecoverable from the focus_merges record.`);
313
- }
314
- return { mergeSucceeded: true, exitReason, commitSha: mergeResult.commitSha };
315
- }
316
- // Handle merge conflicts
317
- const conflictedFiles = mergeResult.conflictedFiles;
318
- if (conflictedFiles && conflictedFiles.length > 0) {
319
- const exitReason = `Agent completed but merge had conflicts in ${conflictedFiles.length} file(s). Escalated for resolution.`;
320
- log.warn(`Merge conflict: ${conflictedFiles.join(', ')}`);
321
- try {
322
- await withRetry(() => createEscalation({
323
- organizationId,
324
- sessionId: sessionId ?? '',
325
- issueId: null,
326
- reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
327
- disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
328
- anchor: { deliveryId, focusId, branch: branchName },
329
- description: `Merge conflict merging agent branch into integration.\n\n` +
330
- `**Delivery:** ${deliveryName}\n` +
331
- `**Source branch:** ${mergeResult.sourceBranch}\n` +
332
- `**Target branch:** ${mergeResult.targetBranch}\n` +
333
- `**Conflicted files:**\n${conflictedFiles.map(f => `- ${f}`).join('\n')}`,
334
- whatWasTried: `Attempted automatic merge of ${branchName} into ${config.integrationBranch} after agent completed successfully.`,
335
- helpNeeded: `Resolve the merge conflicts between ${mergeResult.sourceBranch} and ${mergeResult.targetBranch}, then re-queue the delivery.`,
336
- }), { maxAttempts: 3, label: 'escalation-merge-conflict' });
337
- log.info(`Created escalation for merge conflict`);
338
- }
339
- catch (escErr) {
340
- log.error(`CRITICAL: Failed to create escalation for merge conflict after retries: ${escErr.message}. Delivery: "${deliveryName}"`);
341
- }
342
- const queuedStage = getStageByName(workflow, DELIVERY_STATUS.QUEUED);
343
- return {
344
- mergeSucceeded: false,
345
- exitReason,
346
- overrideDeliveryStatus: queuedStage?.name ?? DELIVERY_STATUS.QUEUED,
347
- overrideDeliveryStageId: queuedStage?.id,
348
- };
349
- }
350
- // General merge failure
351
- const exitReason = `Merge failed: ${mergeResult.error}. Branch ${branchName} preserved for manual merge.`;
352
- log.warn(`Merge to integration failed: ${mergeResult.error}`);
353
- return { mergeSucceeded: false, exitReason };
354
- }
355
- // ── Constituent commit extraction ───────────────────────────────────
356
- /**
357
- * Extract the list of commit SHAs that were merged from a branch.
358
- *
359
- * Uses `git log --format=%H <preMergeRef>..<branchName>` in the merge worktree
360
- * to list all commits on the branch that were not already on the target branch
361
- * before the merge.
362
- *
363
- * Returns an empty array if extraction fails (best-effort).
364
- */
365
- function extractConstituentCommits(config, branchName, preMergeRef) {
366
- if (!preMergeRef) {
367
- return [];
368
- }
369
- try {
370
- const mwt = getMergeWorktreePath(config);
371
- const result = runGitSync(['log', '--format=%H', `${preMergeRef}..${branchName}`], mwt);
372
- if (result.success && result.output) {
373
- return result.output.split('\n').filter(Boolean);
374
- }
375
- }
376
- catch (err) {
377
- log.warn(`[focusMerge] Failed to extract constituent commits:`, err.message);
378
- }
379
- return [];
380
- }
241
+ // ── Merge operations (extracted) ─────────────────────────────────────
242
+ // The branch merge-to-integration path + its constituent-commit extraction live
243
+ // in delivery-merge-ops.ts (kept under the daemon file-size limit, mirroring the
244
+ // delivery-advance-block.ts split). Re-exported here so existing importers
245
+ // (merge/focus-merge, tests) keep their import path.
246
+ export { mergeDeliveryBranch } from './delivery-merge-ops.js';
381
247
  // ── Guard failure helpers ───────────────────────────────────────────
382
248
  /**
383
249
  * Resolve the effective failure mode for a guard evaluation error.
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-lifecycle.js","sourceRoot":"","sources":["../../src/delivery/delivery-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-lifecycle.js","sourceRoot":"","sources":["../../src/delivery/delivery-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Delivery branch merge operations.
3
+ *
4
+ * Extracted from delivery-lifecycle.ts (kept under the daemon file-size limit,
5
+ * mirroring the delivery-advance-block.ts split). Holds the merge-to-integration
6
+ * path and its constituent-commit extraction; delivery-lifecycle.ts re-exports
7
+ * `mergeDeliveryBranch` (and its types) so existing importers keep their path.
8
+ *
9
+ * Key functions:
10
+ * - mergeDeliveryBranch(): merge a delivery's branch to integration, escalate on
11
+ * conflict/rollback failure, and record focus-merge bookkeeping.
12
+ */
13
+ import type { DaemonConfig, Workflow } from '../types/index.js';
14
+ export interface MergeOutcome {
15
+ /** Whether the merge to integration succeeded. */
16
+ mergeSucceeded: boolean;
17
+ /** Updated exit reason string. */
18
+ exitReason: string;
19
+ /** If set, override the delivery status (e.g., back to queued on conflict). */
20
+ overrideDeliveryStatus?: string;
21
+ /** If set, override the delivery stage ID. */
22
+ overrideDeliveryStageId?: string | null;
23
+ /** The squash merge commit SHA (set on successful merge). */
24
+ commitSha?: string;
25
+ }
26
+ export interface DeliveryBranchMergeParams {
27
+ config: DaemonConfig;
28
+ branchName: string;
29
+ deliveryId: string;
30
+ deliveryName: string;
31
+ organizationId: string;
32
+ sessionId: string | null;
33
+ workflow: Workflow;
34
+ /** Focus ID for recording the merge in focus_merges. Optional for legacy per-delivery path. */
35
+ focusId?: string;
36
+ }
37
+ /**
38
+ * Merge a delivery's branch to the integration branch.
39
+ *
40
+ * Handles:
41
+ * - Merge to integration
42
+ * - Conflict escalation
43
+ * - Git state reporting
44
+ */
45
+ export declare function mergeDeliveryBranch(params: DeliveryBranchMergeParams): Promise<MergeOutcome>;
46
+ //# sourceMappingURL=delivery-merge-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-merge-ops.d.ts","sourceRoot":"","sources":["../../src/delivery/delivery-merge-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAchE,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,cAAc,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,CAAC,CAuHvB"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Delivery branch merge operations.
3
+ *
4
+ * Extracted from delivery-lifecycle.ts (kept under the daemon file-size limit,
5
+ * mirroring the delivery-advance-block.ts split). Holds the merge-to-integration
6
+ * path and its constituent-commit extraction; delivery-lifecycle.ts re-exports
7
+ * `mergeDeliveryBranch` (and its types) so existing importers keep their path.
8
+ *
9
+ * Key functions:
10
+ * - mergeDeliveryBranch(): merge a delivery's branch to integration, escalate on
11
+ * conflict/rollback failure, and record focus-merge bookkeeping.
12
+ */
13
+ import { updateDeliveryMergeCommitSha, recordFocusMerge } from '../queries/deliveries.js';
14
+ import { createEscalation } from '../queries/issues.js';
15
+ import { mergeToIntegration } from '../git/exec.js';
16
+ import { runGitSync, getMergeWorktreePath } from '../git/index.js';
17
+ import { getStageByName } from '../workflow/workflow-engine.js';
18
+ import { withRetry, ESCALATION_REASONS, ESCALATION_DISPOSITIONS, DELIVERY_STATUS } from '@telora/daemon-core';
19
+ import { createLogger } from '../shell/log.js';
20
+ const log = createLogger({ module: 'guard' });
21
+ // ── Merge operations ────────────────────────────────────────────────
22
+ /**
23
+ * Merge a delivery's branch to the integration branch.
24
+ *
25
+ * Handles:
26
+ * - Merge to integration
27
+ * - Conflict escalation
28
+ * - Git state reporting
29
+ */
30
+ export async function mergeDeliveryBranch(params) {
31
+ const { config, branchName, deliveryId, deliveryName, organizationId, sessionId, workflow, focusId } = params;
32
+ log.info(`Attempting to merge ${branchName} into ${config.integrationBranch}...`);
33
+ const onRollbackFailure = (details) => {
34
+ withRetry(() => createEscalation({
35
+ organizationId,
36
+ sessionId: sessionId ?? '',
37
+ issueId: null,
38
+ reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
39
+ disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
40
+ anchor: { deliveryId, focusId, branch: branchName },
41
+ description: `CRITICAL: Push failed AND rollback failed. Integration branch is corrupt.\n\n` +
42
+ `**Delivery:** ${deliveryName}\n` +
43
+ `**Branch:** ${details.branch}\n` +
44
+ `**Attempted rollback to:** ${details.attemptedRollbackRef}\n` +
45
+ `**Current HEAD:** ${details.currentHead}\n\n` +
46
+ `All merge operations are blocked until manual recovery.`,
47
+ whatWasTried: `Push to origin failed for ${details.branch}. Attempted rollback to ${details.attemptedRollbackRef} also failed.`,
48
+ helpNeeded: `Manually reset the branch: git reset --hard origin/${details.branch}. Then restart the daemon.`,
49
+ }), { maxAttempts: 3, label: 'escalation-rollback-failure' }).catch((escErr) => {
50
+ log.error(`CRITICAL: Failed to create escalation for rollback failure: ${escErr.message}`);
51
+ });
52
+ };
53
+ const mergeResult = await mergeToIntegration({ config, branchName, deliveryName, deliveryId, onRollbackFailure });
54
+ if (mergeResult.success) {
55
+ const exitReason = `Merged to ${config.integrationBranch}.`;
56
+ log.info(`Successfully merged ${branchName} to ${config.integrationBranch}`);
57
+ // Note: merged_to_integration git state is reported by the caller
58
+ // (mergeFocusBranch) for all deliveries in the focus to avoid duplicates.
59
+ // Persist the merge commit SHA on the delivery record (fire-and-forget)
60
+ if (mergeResult.commitSha) {
61
+ updateDeliveryMergeCommitSha(deliveryId, mergeResult.commitSha).catch(err => log.warn(`[mergeCommitSha] Failed to record merge commit SHA:`, err.message));
62
+ }
63
+ // Record focus merge with constituent commits (fire-and-forget)
64
+ if (focusId && mergeResult.commitSha) {
65
+ const commitShas = extractConstituentCommits(config, branchName, mergeResult.preMergeRef);
66
+ recordFocusMerge({
67
+ organizationId,
68
+ focusId,
69
+ mergeCommitSha: mergeResult.commitSha,
70
+ commitShas,
71
+ branchName,
72
+ // The pre-merge boundary bounds the merged contribution even when the
73
+ // merge-back fast-forwarded (no merge commit) -- see the fast-forward-safe
74
+ // source in resolveDeliveryDiffSource.
75
+ ...(mergeResult.preMergeRef ? { preMergeRef: mergeResult.preMergeRef } : {}),
76
+ }).catch(err => log.warn(`[focusMerge] Failed to record focus merge:`, err.message));
77
+ }
78
+ // A merge that recorded NO bookkeeping (its sha could not be observed) is a
79
+ // fault, not a silent skip. merge.ts already emitted the loud RECORDED-NOTHING
80
+ // FAULT at merge time; surface it here too so the write-site's silence -- the
81
+ // exact place the ~19-minute-later gate blindness originates -- is broken.
82
+ if (mergeResult.shaUnobserved) {
83
+ log.warn(`[focusMerge] delivery ${deliveryId} on branch ${branchName} merged to ` +
84
+ `${config.integrationBranch} but recorded NO bookkeeping (merge sha unobserved) -- ` +
85
+ `verify evidence for this delivery will be unrecoverable from the focus_merges record.`);
86
+ }
87
+ return { mergeSucceeded: true, exitReason, commitSha: mergeResult.commitSha };
88
+ }
89
+ // Handle merge conflicts
90
+ const conflictedFiles = mergeResult.conflictedFiles;
91
+ if (conflictedFiles && conflictedFiles.length > 0) {
92
+ const exitReason = `Agent completed but merge had conflicts in ${conflictedFiles.length} file(s). Escalated for resolution.`;
93
+ log.warn(`Merge conflict: ${conflictedFiles.join(', ')}`);
94
+ try {
95
+ await withRetry(() => createEscalation({
96
+ organizationId,
97
+ sessionId: sessionId ?? '',
98
+ issueId: null,
99
+ reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
100
+ disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
101
+ anchor: { deliveryId, focusId, branch: branchName },
102
+ description: `Merge conflict merging agent branch into integration.\n\n` +
103
+ `**Delivery:** ${deliveryName}\n` +
104
+ `**Source branch:** ${mergeResult.sourceBranch}\n` +
105
+ `**Target branch:** ${mergeResult.targetBranch}\n` +
106
+ `**Conflicted files:**\n${conflictedFiles.map(f => `- ${f}`).join('\n')}`,
107
+ whatWasTried: `Attempted automatic merge of ${branchName} into ${config.integrationBranch} after agent completed successfully.`,
108
+ helpNeeded: `Resolve the merge conflicts between ${mergeResult.sourceBranch} and ${mergeResult.targetBranch}, then re-queue the delivery.`,
109
+ }), { maxAttempts: 3, label: 'escalation-merge-conflict' });
110
+ log.info(`Created escalation for merge conflict`);
111
+ }
112
+ catch (escErr) {
113
+ log.error(`CRITICAL: Failed to create escalation for merge conflict after retries: ${escErr.message}. Delivery: "${deliveryName}"`);
114
+ }
115
+ const queuedStage = getStageByName(workflow, DELIVERY_STATUS.QUEUED);
116
+ return {
117
+ mergeSucceeded: false,
118
+ exitReason,
119
+ overrideDeliveryStatus: queuedStage?.name ?? DELIVERY_STATUS.QUEUED,
120
+ overrideDeliveryStageId: queuedStage?.id,
121
+ };
122
+ }
123
+ // General merge failure
124
+ const exitReason = `Merge failed: ${mergeResult.error}. Branch ${branchName} preserved for manual merge.`;
125
+ log.warn(`Merge to integration failed: ${mergeResult.error}`);
126
+ return { mergeSucceeded: false, exitReason };
127
+ }
128
+ // ── Constituent commit extraction ───────────────────────────────────
129
+ /**
130
+ * Extract the list of commit SHAs that were merged from a branch.
131
+ *
132
+ * Uses `git log --format=%H <preMergeRef>..<branchName>` in the merge worktree
133
+ * to list all commits on the branch that were not already on the target branch
134
+ * before the merge.
135
+ *
136
+ * Returns an empty array if extraction fails (best-effort).
137
+ */
138
+ function extractConstituentCommits(config, branchName, preMergeRef) {
139
+ if (!preMergeRef) {
140
+ return [];
141
+ }
142
+ try {
143
+ const mwt = getMergeWorktreePath(config);
144
+ const result = runGitSync(['log', '--format=%H', `${preMergeRef}..${branchName}`], mwt);
145
+ if (result.success && result.output) {
146
+ return result.output.split('\n').filter(Boolean);
147
+ }
148
+ }
149
+ catch (err) {
150
+ log.warn(`[focusMerge] Failed to extract constituent commits:`, err.message);
151
+ }
152
+ return [];
153
+ }
154
+ //# sourceMappingURL=delivery-merge-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-merge-ops.js","sourceRoot":"","sources":["../../src/delivery/delivery-merge-ops.ts"],"names":[],"mappings":"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"}