@generacy-ai/orchestrator 0.7.0 → 0.9.0

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 (145) hide show
  1. package/dist/config/loader.d.ts.map +1 -1
  2. package/dist/config/loader.js +47 -1
  3. package/dist/config/loader.js.map +1 -1
  4. package/dist/config/schema.d.ts +459 -0
  5. package/dist/config/schema.d.ts.map +1 -1
  6. package/dist/config/schema.js +13 -1
  7. package/dist/config/schema.js.map +1 -1
  8. package/dist/index.d.ts +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +3 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/launcher/agent-launcher.d.ts +15 -16
  13. package/dist/launcher/agent-launcher.d.ts.map +1 -1
  14. package/dist/launcher/agent-launcher.js +54 -23
  15. package/dist/launcher/agent-launcher.js.map +1 -1
  16. package/dist/launcher/constants.d.ts +5 -0
  17. package/dist/launcher/constants.d.ts.map +1 -0
  18. package/dist/launcher/constants.js +5 -0
  19. package/dist/launcher/constants.js.map +1 -0
  20. package/dist/launcher/errors.d.ts +15 -0
  21. package/dist/launcher/errors.d.ts.map +1 -0
  22. package/dist/launcher/errors.js +25 -0
  23. package/dist/launcher/errors.js.map +1 -0
  24. package/dist/launcher/generic-subprocess-plugin.d.ts +1 -0
  25. package/dist/launcher/generic-subprocess-plugin.d.ts.map +1 -1
  26. package/dist/launcher/generic-subprocess-plugin.js +2 -0
  27. package/dist/launcher/generic-subprocess-plugin.js.map +1 -1
  28. package/dist/launcher/index.d.ts +2 -1
  29. package/dist/launcher/index.d.ts.map +1 -1
  30. package/dist/launcher/index.js +1 -0
  31. package/dist/launcher/index.js.map +1 -1
  32. package/dist/launcher/types.d.ts +81 -4
  33. package/dist/launcher/types.d.ts.map +1 -1
  34. package/dist/routes/health.d.ts +7 -0
  35. package/dist/routes/health.d.ts.map +1 -1
  36. package/dist/routes/health.js +5 -0
  37. package/dist/routes/health.js.map +1 -1
  38. package/dist/routes/internal-relay-events.d.ts +2 -2
  39. package/dist/routes/internal-relay-events.d.ts.map +1 -1
  40. package/dist/routes/internal-relay-events.js +12 -0
  41. package/dist/routes/internal-relay-events.js.map +1 -1
  42. package/dist/routes/retained-tunnel-event.d.ts +20 -0
  43. package/dist/routes/retained-tunnel-event.d.ts.map +1 -0
  44. package/dist/routes/retained-tunnel-event.js +67 -0
  45. package/dist/routes/retained-tunnel-event.js.map +1 -0
  46. package/dist/server.d.ts.map +1 -1
  47. package/dist/server.js +168 -27
  48. package/dist/server.js.map +1 -1
  49. package/dist/services/adaptive-poll-controller.d.ts +75 -0
  50. package/dist/services/adaptive-poll-controller.d.ts.map +1 -0
  51. package/dist/services/adaptive-poll-controller.js +96 -0
  52. package/dist/services/adaptive-poll-controller.js.map +1 -0
  53. package/dist/services/clarification-answer-monitor-service.d.ts +71 -0
  54. package/dist/services/clarification-answer-monitor-service.d.ts.map +1 -0
  55. package/dist/services/clarification-answer-monitor-service.js +366 -0
  56. package/dist/services/clarification-answer-monitor-service.js.map +1 -0
  57. package/dist/services/failure-fingerprint-tracker.d.ts +28 -0
  58. package/dist/services/failure-fingerprint-tracker.d.ts.map +1 -0
  59. package/dist/services/failure-fingerprint-tracker.js +38 -0
  60. package/dist/services/failure-fingerprint-tracker.js.map +1 -0
  61. package/dist/services/index.d.ts +1 -0
  62. package/dist/services/index.d.ts.map +1 -1
  63. package/dist/services/index.js +3 -0
  64. package/dist/services/index.js.map +1 -1
  65. package/dist/services/label-monitor-service.d.ts +2 -2
  66. package/dist/services/label-monitor-service.d.ts.map +1 -1
  67. package/dist/services/label-monitor-service.js +33 -16
  68. package/dist/services/label-monitor-service.js.map +1 -1
  69. package/dist/services/merge-conflict-monitor-service.d.ts +1 -1
  70. package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -1
  71. package/dist/services/merge-conflict-monitor-service.js +33 -13
  72. package/dist/services/merge-conflict-monitor-service.js.map +1 -1
  73. package/dist/services/post-activation-retry.d.ts +3 -0
  74. package/dist/services/post-activation-retry.d.ts.map +1 -1
  75. package/dist/services/post-activation-retry.js +34 -2
  76. package/dist/services/post-activation-retry.js.map +1 -1
  77. package/dist/services/pr-feedback-monitor-service.d.ts +1 -1
  78. package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
  79. package/dist/services/pr-feedback-monitor-service.js +33 -16
  80. package/dist/services/pr-feedback-monitor-service.js.map +1 -1
  81. package/dist/services/relay-bridge.d.ts +1 -0
  82. package/dist/services/relay-bridge.d.ts.map +1 -1
  83. package/dist/services/relay-bridge.js +21 -0
  84. package/dist/services/relay-bridge.js.map +1 -1
  85. package/dist/services/smee-channel-resolver.d.ts +60 -0
  86. package/dist/services/smee-channel-resolver.d.ts.map +1 -0
  87. package/dist/services/smee-channel-resolver.js +177 -0
  88. package/dist/services/smee-channel-resolver.js.map +1 -0
  89. package/dist/services/webhook-setup-service.d.ts +115 -111
  90. package/dist/services/webhook-setup-service.d.ts.map +1 -1
  91. package/dist/services/webhook-setup-service.js +377 -209
  92. package/dist/services/webhook-setup-service.js.map +1 -1
  93. package/dist/types/api.d.ts +3 -0
  94. package/dist/types/api.d.ts.map +1 -1
  95. package/dist/types/api.js +1 -0
  96. package/dist/types/api.js.map +1 -1
  97. package/dist/types/monitor.d.ts +15 -2
  98. package/dist/types/monitor.d.ts.map +1 -1
  99. package/dist/worker/clarification-markers.d.ts +62 -0
  100. package/dist/worker/clarification-markers.d.ts.map +1 -1
  101. package/dist/worker/clarification-markers.js +101 -0
  102. package/dist/worker/clarification-markers.js.map +1 -1
  103. package/dist/worker/clarification-poster.d.ts +102 -6
  104. package/dist/worker/clarification-poster.d.ts.map +1 -1
  105. package/dist/worker/clarification-poster.js +299 -89
  106. package/dist/worker/clarification-poster.js.map +1 -1
  107. package/dist/worker/claude-cli-worker.d.ts +7 -0
  108. package/dist/worker/claude-cli-worker.d.ts.map +1 -1
  109. package/dist/worker/claude-cli-worker.js +7 -3
  110. package/dist/worker/claude-cli-worker.js.map +1 -1
  111. package/dist/worker/cli-spawner.d.ts.map +1 -1
  112. package/dist/worker/cli-spawner.js +2 -0
  113. package/dist/worker/cli-spawner.js.map +1 -1
  114. package/dist/worker/config.d.ts +396 -0
  115. package/dist/worker/config.d.ts.map +1 -1
  116. package/dist/worker/config.js +142 -0
  117. package/dist/worker/config.js.map +1 -1
  118. package/dist/worker/failure-fingerprint.d.ts +41 -0
  119. package/dist/worker/failure-fingerprint.d.ts.map +1 -0
  120. package/dist/worker/failure-fingerprint.js +75 -0
  121. package/dist/worker/failure-fingerprint.js.map +1 -0
  122. package/dist/worker/label-manager.d.ts +42 -0
  123. package/dist/worker/label-manager.d.ts.map +1 -1
  124. package/dist/worker/label-manager.js +108 -4
  125. package/dist/worker/label-manager.js.map +1 -1
  126. package/dist/worker/phase-loop.d.ts +30 -0
  127. package/dist/worker/phase-loop.d.ts.map +1 -1
  128. package/dist/worker/phase-loop.js +158 -27
  129. package/dist/worker/phase-loop.js.map +1 -1
  130. package/dist/worker/pr-feedback-handler.d.ts +13 -0
  131. package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
  132. package/dist/worker/pr-feedback-handler.js +58 -3
  133. package/dist/worker/pr-feedback-handler.js.map +1 -1
  134. package/dist/worker/stage-comment-manager.d.ts +5 -0
  135. package/dist/worker/stage-comment-manager.d.ts.map +1 -1
  136. package/dist/worker/stage-comment-manager.js +8 -1
  137. package/dist/worker/stage-comment-manager.js.map +1 -1
  138. package/dist/worker/terminal-label-op-error.d.ts +1 -1
  139. package/dist/worker/terminal-label-op-error.d.ts.map +1 -1
  140. package/dist/worker/terminal-label-op-error.js.map +1 -1
  141. package/dist/worker/types.d.ts +51 -0
  142. package/dist/worker/types.d.ts.map +1 -1
  143. package/dist/worker/types.js +11 -0
  144. package/dist/worker/types.js.map +1 -1
  145. package/package.json +11 -7
@@ -1,8 +1,9 @@
1
1
  import { PHASE_SEQUENCE, PHASE_TO_STAGE } from './types.js';
2
2
  import { isTerminalLabelOpError } from './terminal-label-op-error.js';
3
- import { resolvePhaseTimeoutMs } from './config.js';
3
+ import { resolvePhaseTimeoutMs, resolveAgentForPhase } from './config.js';
4
4
  import { DEFAULT_INSTALL_TIMEOUT_MS, DEFAULT_VALIDATE_TIMEOUT_MS } from './cli-spawner.js';
5
5
  import { postClarifications, hasPendingClarifications, integrateClarificationAnswers } from './clarification-poster.js';
6
+ import { PENDING_ANSWER_LITERAL } from '@generacy-ai/workflow-engine';
6
7
  import { buildSiblingPromptBlock } from './sibling-prompt.js';
7
8
  import { checkSiblingReviews } from './sibling-review-checker.js';
8
9
  import { EXCLUDED_PATH_PREFIXES, computeProductDiff, resolveBaseRef } from './product-diff.js';
@@ -11,9 +12,14 @@ import { synthesizeOutputTail } from './output-tail-synthesis.js';
11
12
  import { performBaseMerge, resolveBaseBranch } from './base-merge.js';
12
13
  import { MERGE_CONFLICT_REMEDY } from './merge-conflict-remedy.js';
13
14
  import { writePauseContext } from './pause-context.js';
15
+ import { computeFailureFingerprint, REPEAT_FAILURE_THRESHOLD } from './failure-fingerprint.js';
14
16
  import { randomUUID } from 'node:crypto';
15
17
  /** Phases that MUST produce file changes to be considered successful. */
16
18
  const PHASES_REQUIRING_CHANGES = new Set(['implement']);
19
+ /** Narrow a `WorkflowPhase | string` union to WorkflowPhase. */
20
+ function isWorkflowPhase(value) {
21
+ return PHASE_SEQUENCE.includes(value);
22
+ }
17
23
  /**
18
24
  * Iterates through workflow phases from the starting phase to completion.
19
25
  *
@@ -84,6 +90,11 @@ export class PhaseLoop {
84
90
  // so Claude CLI can reuse the conversation (keeping MCP servers warm and
85
91
  // carrying forward accumulated context).
86
92
  let currentSessionId;
93
+ // #814: track the resolved provider + model across phases. `currentProvider`
94
+ // gates the session-drop-on-provider-switch behavior (FR-011); `currentModel`
95
+ // feeds the `agent.model.transition` log line on same-provider model change.
96
+ let currentProvider;
97
+ let currentModel;
87
98
  let implementRetryCount = 0;
88
99
  // Track last seen tasks_remaining for the implement increment guard.
89
100
  // Prevents infinite loops when no progress is made between increments.
@@ -172,7 +183,6 @@ export class PhaseLoop {
172
183
  if (!installResult.success) {
173
184
  this.logger.error({ phase, error: installResult.error?.message }, 'Pre-validate install failed');
174
185
  results.push(installResult);
175
- await labelManager.onError(phase);
176
186
  const evidence = this.buildErrorEvidence(config.preValidateCommand, installResult, DEFAULT_INSTALL_TIMEOUT_MS, undefined);
177
187
  await stageCommentManager.updateStageComment({
178
188
  stage,
@@ -181,7 +191,7 @@ export class PhaseLoop {
181
191
  startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
182
192
  errorEvidence: evidence,
183
193
  });
184
- await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
194
+ await this.escalateAndAlert(context, deps, phase, evidence, stage, runId);
185
195
  return { results, completed: false, lastPhase: phase, gateHit: false };
186
196
  }
187
197
  }
@@ -199,6 +209,28 @@ export class PhaseLoop {
199
209
  ? `${siblingBlock}\n\n${context.issueUrl}`
200
210
  : context.issueUrl;
201
211
  const cliPhase = phase;
212
+ // #814: resolve provider+model for this phase. Provider always defined
213
+ // (built-in fallback). Model optional (undefined = no `--model` arg).
214
+ const { provider: nextProvider, model: nextModel } = resolveAgentForPhase(config, context.item.workflowName, cliPhase);
215
+ // Drop session on provider switch (FR-011). Sessions are provider-scoped;
216
+ // reusing one across providers would try to resume against a session ID
217
+ // the new provider doesn't know.
218
+ if (currentProvider !== undefined && currentProvider !== nextProvider) {
219
+ this.logger.info({ phase: cliPhase, prevProvider: currentProvider, nextProvider }, 'Provider switch detected — dropping session for fresh start');
220
+ currentSessionId = undefined;
221
+ }
222
+ // Emit model-transition log line on same-provider model change (Q2→C).
223
+ // Only meaningful when we actually saw a prior phase with the same
224
+ // provider AND both models are defined (a switch from undefined→X or
225
+ // X→undefined is not a "transition" — either the config just started
226
+ // or just stopped naming a model).
227
+ if (currentProvider === nextProvider &&
228
+ currentModel !== undefined &&
229
+ nextModel !== undefined &&
230
+ currentModel !== nextModel) {
231
+ this.logger.info({ provider: nextProvider, prevModel: currentModel, nextModel }, 'agent.model.transition');
232
+ }
233
+ const previousModel = currentProvider === nextProvider ? currentModel : undefined;
202
234
  result = await cliSpawner.spawnPhase(cliPhase, {
203
235
  prompt,
204
236
  cwd: context.checkoutPath,
@@ -207,13 +239,18 @@ export class PhaseLoop {
207
239
  signal: context.signal,
208
240
  resumeSessionId: currentSessionId,
209
241
  siblingWorkdirs: context.siblingWorkdirs,
242
+ provider: nextProvider,
243
+ ...(nextModel !== undefined ? { model: nextModel } : {}),
244
+ ...(previousModel !== undefined ? { previousModel } : {}),
210
245
  }, outputCapture);
246
+ // Update trackers post-spawn so failures don't strand state.
247
+ currentProvider = nextProvider;
248
+ currentModel = nextModel;
211
249
  }
212
250
  }
213
251
  catch (error) {
214
252
  // Unexpected error during spawning
215
253
  this.logger.error({ phase, error: String(error) }, 'Unexpected error during phase execution');
216
- await labelManager.onError(phase);
217
254
  const syntheticResult = {
218
255
  phase,
219
256
  success: false,
@@ -230,7 +267,7 @@ export class PhaseLoop {
230
267
  startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
231
268
  errorEvidence: evidence,
232
269
  });
233
- await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
270
+ await this.escalateAndAlert(context, deps, phase, evidence, stage, runId);
234
271
  throw error;
235
272
  }
236
273
  results.push(result);
@@ -265,7 +302,6 @@ export class PhaseLoop {
265
302
  phase,
266
303
  };
267
304
  const evidence = this.buildErrorEvidence('implement (no-progress guard)', result, undefined, 'no-progress');
268
- await labelManager.onError(phase);
269
305
  await stageCommentManager.updateStageComment({
270
306
  stage,
271
307
  status: 'error',
@@ -274,7 +310,7 @@ export class PhaseLoop {
274
310
  prUrl: context.prUrl,
275
311
  errorEvidence: evidence,
276
312
  });
277
- await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
313
+ await this.escalateAndAlert(context, deps, phase, evidence, stage, runId);
278
314
  return { results, completed: false, lastPhase: phase, gateHit: false };
279
315
  }
280
316
  lastTasksRemaining = tasksRemaining;
@@ -351,7 +387,6 @@ export class PhaseLoop {
351
387
  this.logger.warn({ err: String(err), phase, issueNumber: context.item.issueNumber }, 'validate-fix handler threw — falling through to standard onError path');
352
388
  }
353
389
  }
354
- await labelManager.onError(phase);
355
390
  const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, result, phase === 'validate'
356
391
  ? DEFAULT_VALIDATE_TIMEOUT_MS
357
392
  : resolvePhaseTimeoutMs(config, phase), undefined);
@@ -362,7 +397,7 @@ export class PhaseLoop {
362
397
  startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
363
398
  errorEvidence: evidence,
364
399
  });
365
- await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
400
+ await this.escalateAndAlert(context, deps, phase, evidence, stage, runId);
366
401
  return { results, completed: false, lastPhase: phase, gateHit: false };
367
402
  }
368
403
  // 5. Commit, push, and ensure draft PR exists (before marking complete)
@@ -384,7 +419,6 @@ export class PhaseLoop {
384
419
  }
385
420
  catch (err) {
386
421
  this.logger.error({ phase, err: String(err) }, 'product-diff computation threw — treating as detection failure');
387
- await labelManager.onError(phase);
388
422
  result.success = false;
389
423
  result.error = {
390
424
  message: `Phase "${phase}" product-diff detection failed: ${String(err)}`,
@@ -400,12 +434,11 @@ export class PhaseLoop {
400
434
  prUrl: context.prUrl,
401
435
  errorEvidence: evidence,
402
436
  });
403
- await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
437
+ await this.escalateAndAlert(context, deps, phase, evidence, stage, runId);
404
438
  return { results, completed: false, lastPhase: phase, gateHit: false };
405
439
  }
406
440
  if (productFiles.length === 0) {
407
441
  this.logger.error({ phase, baseRef, changedFiles, excluded: EXCLUDED_PATH_PREFIXES }, 'implement phase produced no product-code changes — all diff lives under excluded paths');
408
- await labelManager.onError(phase);
409
442
  result.success = false;
410
443
  result.error = {
411
444
  message: `Phase "${phase}" produced no product-code changes — all changed files are under excluded prefixes ` +
@@ -422,12 +455,35 @@ export class PhaseLoop {
422
455
  prUrl: context.prUrl,
423
456
  errorEvidence: evidence,
424
457
  });
425
- await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
458
+ await this.escalateAndAlert(context, deps, phase, evidence, stage, runId);
426
459
  return { results, completed: false, lastPhase: phase, gateHit: false };
427
460
  }
428
461
  }
429
- // 5c. Mark phase as completed in labels
430
- await labelManager.onPhaseComplete(phase);
462
+ // 5c. #958 FR-009 safety-net + FR-010 parse-failure reporting.
463
+ // Runs unconditionally on the clarify phase (used to sit inside the
464
+ // gate-active branch — went quiet exactly when needed). Integration
465
+ // happens here so the local clarifications.md reflects any freshly
466
+ // relayed answers before the gate check.
467
+ let clarifyIntegration;
468
+ if (phase === 'clarify') {
469
+ try {
470
+ clarifyIntegration = await integrateClarificationAnswers(context, this.logger);
471
+ }
472
+ catch (err) {
473
+ this.logger.warn({ err: String(err) }, 'integrateClarificationAnswers threw — continuing (gate check will pause on unknown state per FR-007)');
474
+ }
475
+ try {
476
+ await postClarifications(context, this.logger);
477
+ }
478
+ catch (err) {
479
+ this.logger.warn({ err: err instanceof Error ? err.message : String(err) }, 'Failed to post clarification questions safety net — continuing');
480
+ }
481
+ // FR-010: surface parse failures on the issue + relay event.
482
+ if (clarifyIntegration?.parseFailures !== undefined
483
+ && clarifyIntegration.parseFailures.length > 0) {
484
+ await this.reportClarificationParseFailures(context, clarifyIntegration);
485
+ }
486
+ }
431
487
  // 5d. Invoke phase:after handlers (post-commit, pre-gate)
432
488
  for (const handler of deps.phaseAfterHandlers ?? []) {
433
489
  await handler({ ...context, phase, commitResult: { prUrl, hasChanges } });
@@ -443,9 +499,9 @@ export class PhaseLoop {
443
499
  gateActive = true;
444
500
  }
445
501
  else if (gate.condition === 'on-questions') {
446
- // Defensive: integrate any GitHub answers into local clarifications.md
447
- // before checking for pending questions.
448
- await integrateClarificationAnswers(context, this.logger);
502
+ // #958 FR-008/FR-009 integration + safety-net posting already ran
503
+ // in step 5c above. This branch is now a pure boolean check against
504
+ // the freshly-integrated file (fail-closed per FR-007).
449
505
  gateActive = hasPendingClarifications(context.checkoutPath, context.item.issueNumber);
450
506
  if (!gateActive) {
451
507
  this.logger.info({ phase, gateLabel: gate.gateLabel }, 'Gate condition "on-questions" not met (no pending clarifications) — skipping');
@@ -492,15 +548,8 @@ export class PhaseLoop {
492
548
  gateLabel: gate.gateLabel,
493
549
  });
494
550
  await labelManager.onGateHit(phase, gate.gateLabel);
495
- // Post clarification questions to the issue when clarify gate is hit
496
- if (gate.gateLabel === 'waiting-for:clarification') {
497
- try {
498
- await postClarifications(context, this.logger);
499
- }
500
- catch (error) {
501
- this.logger.warn({ error: error instanceof Error ? error.message : String(error) }, 'Failed to post clarification questions — continuing gate flow');
502
- }
503
- }
551
+ // #958 FR-009 safety-net posting moved to step 5c so it runs on any
552
+ // clarify-phase completion, not only when the gate activates.
504
553
  // Update the result with gate info
505
554
  result.gateHit = {
506
555
  gateLabel: gate.gateLabel,
@@ -520,6 +569,13 @@ export class PhaseLoop {
520
569
  });
521
570
  return { results, completed: false, lastPhase: phase, gateHit: true };
522
571
  }
572
+ // 6b. #958 FR-008 — grant `completed:<phase>` only after every gate
573
+ // evaluation returned "skip" (either not active, or already satisfied).
574
+ // The pre-#958 placement (before gate check) meant any code path that
575
+ // skipped the gate left the advance-authorizing label in place. This
576
+ // ordering also lets `LabelManager.onGateHit` drop its dead-code
577
+ // retract-the-completed-label branch (T012).
578
+ await labelManager.onPhaseComplete(phase);
523
579
  // 7. Record phase completion time
524
580
  const phaseTs = phaseTimestamps.get(phase);
525
581
  if (phaseTs)
@@ -638,6 +694,81 @@ export class PhaseLoop {
638
694
  gateHit: true,
639
695
  };
640
696
  }
697
+ /**
698
+ * #942: Fingerprint the failure, look up prior identical failures on this
699
+ * issue, escalate labels + post the alert.
700
+ *
701
+ * Order (per contract):
702
+ * 1. Compute fingerprint (pure, non-throwing).
703
+ * 2. Fetch prior-occurrence count (fail-open — errors already suppressed
704
+ * inside the tracker, so this is always a number).
705
+ * 3. `labelManager.onError(phase)` — unchanged pre-#942 path.
706
+ * 4. If `occurrence >= REPEAT_FAILURE_THRESHOLD` (N=2), also apply the
707
+ * `-repeated` escalation label BEFORE the alert-post.
708
+ * 5. `stageCommentManager.postFailureAlert({ ..., fingerprint, occurrence })`
709
+ * — line-1 v2 marker carries the fingerprint hex + occurrence counter.
710
+ */
711
+ async escalateAndAlert(context, deps, phase, evidence, stage, runId) {
712
+ const fingerprint = computeFailureFingerprint({ phase, evidence });
713
+ const priorCount = deps.failureFingerprintTracker
714
+ ? await deps.failureFingerprintTracker.countPriorOccurrences(context.item.owner, context.item.repo, context.item.issueNumber, fingerprint)
715
+ : 0;
716
+ const occurrence = priorCount + 1;
717
+ // Regular error label first (byte-compatible w/ pre-#942 consumers).
718
+ // `phase` is a WorkflowPhase here for the 6 real phase-loop sites; the
719
+ // `phase: string` union member exists only for `label-op` failures which
720
+ // don't route through this helper today.
721
+ if (isWorkflowPhase(phase)) {
722
+ await deps.labelManager.onError(phase);
723
+ if (occurrence >= REPEAT_FAILURE_THRESHOLD) {
724
+ this.logger.warn({
725
+ phase,
726
+ fingerprint,
727
+ occurrence,
728
+ issue: context.item.issueNumber,
729
+ }, 'Repeat-identical failure detected — escalating with failed:<phase>-repeated');
730
+ await deps.labelManager.onRepeatedError(phase);
731
+ }
732
+ }
733
+ await deps.stageCommentManager.postFailureAlert({
734
+ stage,
735
+ runId,
736
+ phase,
737
+ evidence,
738
+ fingerprint,
739
+ occurrence,
740
+ });
741
+ }
742
+ /**
743
+ * #958 FR-010 — Surface parse failures on the issue + relay event so that
744
+ * "failed to pick up the answers" and "planned anyway" are no longer one
745
+ * event. Best-effort: failures posting the comment are logged and
746
+ * swallowed — the pause itself (via the on-questions gate check that
747
+ * follows) is the load-bearing behavior; this is diagnostic.
748
+ */
749
+ async reportClarificationParseFailures(context, integration) {
750
+ const failures = integration.parseFailures ?? [];
751
+ if (failures.length === 0)
752
+ return;
753
+ const { owner, repo, issueNumber } = context.item;
754
+ const marker = `<!-- generacy-clarification-parse-failures:${issueNumber} -->`;
755
+ const perQuestion = failures
756
+ .map((f) => ` - Q${f.questionNumber}: ${f.reason}`)
757
+ .join('\n');
758
+ const body = `${marker}\n\n**Clarification answer integration reported parse failures.** The following questions remain \`${PENDING_ANSWER_LITERAL}\` and the phase will re-pause:\n\n${perQuestion}\n\nReply with \`Q<n>: <answer>\` for each failing question; the resume monitor will pick up your reply on the next poll cycle.`;
759
+ try {
760
+ await context.github.addIssueComment(owner, repo, issueNumber, body);
761
+ }
762
+ catch (err) {
763
+ this.logger.warn({ err: err instanceof Error ? err.message : String(err), issueNumber }, 'Failed to post clarification parse-failure comment (non-fatal)');
764
+ }
765
+ this.logger.warn({
766
+ event: 'clarification.parse_failures',
767
+ issueNumber,
768
+ pendingAfter: integration.pendingAfter,
769
+ failures,
770
+ }, 'Clarification integration surfaced parse failures');
771
+ }
641
772
  /**
642
773
  * Build the `errorEvidence` payload rendered inside the stage comment on
643
774
  * `status: 'error'` transitions. See specs/847-found-during-cockpit-v1/
@@ -1 +1 @@
1
- {"version":3,"file":"phase-loop.js","sourceRoot":"","sources":["../../src/worker/phase-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"phase-loop.js","sourceRoot":"","sources":["../../src/worker/phase-loop.ts"],"names":[],"mappings":"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"}
@@ -102,5 +102,18 @@ export declare class PrFeedbackHandler {
102
102
  * this `finally` clear together produce at most one truthful post-state.
103
103
  */
104
104
  private clearInProgressLabel;
105
+ /**
106
+ * #941 FR-002: after the fix session terminates, assert that
107
+ * `waiting-for:implementation-review` is still on the linked issue. If it is
108
+ * missing (some other code path stripped it between pause and exit), emit a
109
+ * structured `error` log AND idempotently re-add the label. Non-fatal on
110
+ * failure — never throws so the shared `finally` in `handle()` cannot break
111
+ * on `agent:in-progress` cleanup.
112
+ *
113
+ * Ordering: called from `handle()`'s shared `finally` BEFORE
114
+ * `clearInProgressLabel(...)` so the terminal transient state is never
115
+ * `{ agent:in-progress present, waiting-for:implementation-review absent }`.
116
+ */
117
+ private ensureImplementationReviewGate;
105
118
  }
106
119
  //# sourceMappingURL=pr-feedback-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pr-feedback-handler.d.ts","sourceRoot":"","sources":["../../src/worker/pr-feedback-handler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AA6BnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAN9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAGzB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,eAAe,YAAA;IAK/C;;;;;OAKG;IACG,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6UlE;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;;;OAKG;YACW,sBAAsB;IA0HpC;;;;OAIG;YACW,oBAAoB;IA2ElC;;;;OAIG;YACW,YAAY;IAgB1B;;;;OAIG;YACW,sBAAsB;IAYpC;;;;OAIG;YACW,eAAe;IAe7B;;;;;OAKG;YACW,gCAAgC;IAoB9C;;OAEG;YACW,mBAAmB;IAiBjC;;;;;;;OAOG;YACW,oBAAoB;CAenC"}
1
+ {"version":3,"file":"pr-feedback-handler.d.ts","sourceRoot":"","sources":["../../src/worker/pr-feedback-handler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAgCnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,iBAAiB;IAI1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAN9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAGzB,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,UAAU,CAAC,EAAE,eAAe,YAAA;IAK/C;;;;;OAKG;IACG,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkVlE;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;;;OAKG;YACW,sBAAsB;IAkIpC;;;;OAIG;YACW,oBAAoB;IA2ElC;;;;OAIG;YACW,YAAY;IAgB1B;;;;OAIG;YACW,sBAAsB;IAYpC;;;;OAIG;YACW,eAAe;IAe7B;;;;;OAKG;YACW,gCAAgC;IAoB9C;;OAEG;YACW,mBAAmB;IAiBjC;;;;;;;OAOG;YACW,oBAAoB;IAgBlC;;;;;;;;;;;OAWG;YACW,8BAA8B;CAiD7C"}
@@ -1,4 +1,5 @@
1
1
  import { createGitHubClient, executeCommand, isTrustedCommentAuthor, tryLoadCommentTrustConfig, wrapUntrustedData, } from '@generacy-ai/workflow-engine';
2
+ import { resolveAgentForPhase } from './config.js';
2
3
  import { OutputCapture } from './output-capture.js';
3
4
  import { RepoCheckout } from './repo-checkout.js';
4
5
  import { buildLaunchCredentials } from './credentials-helper.js';
@@ -13,6 +14,8 @@ const BLOCKED_STUCK_FEEDBACK_LOOP_LABEL = 'blocked:stuck-feedback-loop';
13
14
  const AGENT_IN_PROGRESS_LABEL = 'agent:in-progress';
14
15
  /** Waiting gate cleared alongside `agent:in-progress` on the happy path. */
15
16
  const WAITING_FOR_ADDRESS_PR_FEEDBACK_LABEL = 'waiting-for:address-pr-feedback';
17
+ /** #941 FR-002: gate label the fix session must leave present on every exit. */
18
+ const WAITING_FOR_IMPLEMENTATION_REVIEW_LABEL = 'waiting-for:implementation-review';
16
19
  /**
17
20
  * Handles the `address-pr-feedback` command.
18
21
  *
@@ -200,7 +203,7 @@ export class PrFeedbackHandler {
200
203
  // 5. Build structured prompt
201
204
  const prompt = this.buildFeedbackPrompt(unresolvedComments, prNumber, issueNumber);
202
205
  // 6. Spawn Claude CLI to address feedback
203
- const success = await this.spawnClaudeForFeedback(checkoutPath, prompt, workflowId, prNumber);
206
+ const success = await this.spawnClaudeForFeedback(checkoutPath, prompt, workflowId, prNumber, item.workflowName);
204
207
  // 7. Commit and push changes (even on timeout — partial completion strategy)
205
208
  // FR-013: Push partial changes on timeout to preserve work and enable retry
206
209
  let hasChanges = false;
@@ -293,6 +296,10 @@ export class PrFeedbackHandler {
293
296
  throw error;
294
297
  }
295
298
  finally {
299
+ // #941 FR-002: re-assert waiting-for:implementation-review BEFORE
300
+ // clearing agent:in-progress, so no terminal transient state is
301
+ // { agent:in-progress present, waiting-for:implementation-review absent }.
302
+ await this.ensureImplementationReviewGate(github, owner, repo, issueNumber, prNumber);
296
303
  // #926 SC-004: structural single-point clear. Every terminal exit
297
304
  // (Case A, Case B, both blocked-stuck dispositions, happy path, and
298
305
  // thrown errors) flows through here. Non-fatal on failure.
@@ -339,8 +346,12 @@ Please proceed with addressing the feedback.`;
339
346
  * Returns true if the CLI completed successfully, false on timeout or failure.
340
347
  * FR-013: On timeout, partial changes are pushed and label is kept for retry.
341
348
  */
342
- async spawnClaudeForFeedback(checkoutPath, prompt, workflowId, prNumber) {
343
- this.logger.info({ cwd: checkoutPath, timeoutMs: this.config.phaseTimeoutMs }, 'Spawning Claude CLI for PR feedback');
349
+ async spawnClaudeForFeedback(checkoutPath, prompt, workflowId, prNumber, workflowName) {
350
+ // #814 / Q1→B: pr-feedback resolves `{ provider, model }` against the
351
+ // `implement` phase — pr-feedback revises the code `implement` produced,
352
+ // so the same agent/model that wrote the code should address review on it.
353
+ const { provider, model } = resolveAgentForPhase(this.config, workflowName, 'implement');
354
+ this.logger.info({ cwd: checkoutPath, timeoutMs: this.config.phaseTimeoutMs, provider, model }, 'Spawning Claude CLI for PR feedback');
344
355
  let child;
345
356
  try {
346
357
  const handle = await this.agentLauncher.launch({
@@ -348,10 +359,12 @@ Please proceed with addressing the feedback.`;
348
359
  kind: 'pr-feedback',
349
360
  prNumber,
350
361
  prompt,
362
+ ...(model !== undefined ? { model } : {}),
351
363
  },
352
364
  cwd: checkoutPath,
353
365
  env: {},
354
366
  credentials: buildLaunchCredentials(this.config.credentialRole),
367
+ provider,
355
368
  });
356
369
  child = handle.process;
357
370
  }
@@ -559,5 +572,47 @@ Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>`;
559
572
  this.logger.warn({ error: String(error), issueNumber }, 'Failed to remove agent:in-progress label — non-fatal');
560
573
  }
561
574
  }
575
+ /**
576
+ * #941 FR-002: after the fix session terminates, assert that
577
+ * `waiting-for:implementation-review` is still on the linked issue. If it is
578
+ * missing (some other code path stripped it between pause and exit), emit a
579
+ * structured `error` log AND idempotently re-add the label. Non-fatal on
580
+ * failure — never throws so the shared `finally` in `handle()` cannot break
581
+ * on `agent:in-progress` cleanup.
582
+ *
583
+ * Ordering: called from `handle()`'s shared `finally` BEFORE
584
+ * `clearInProgressLabel(...)` so the terminal transient state is never
585
+ * `{ agent:in-progress present, waiting-for:implementation-review absent }`.
586
+ */
587
+ async ensureImplementationReviewGate(github, owner, repo, issueNumber, prNumber) {
588
+ let labels;
589
+ try {
590
+ const issue = await github.getIssue(owner, repo, issueNumber);
591
+ labels = issue.labels.map((l) => (typeof l === 'string' ? l : l.name));
592
+ }
593
+ catch (err) {
594
+ this.logger.warn({ err: String(err), issueNumber, prNumber }, 'ensureImplementationReviewGate: failed to read labels — non-fatal');
595
+ return;
596
+ }
597
+ if (labels.includes(WAITING_FOR_IMPLEMENTATION_REVIEW_LABEL)) {
598
+ this.logger.debug({ issueNumber, prNumber }, 'ensureImplementationReviewGate: gate label already present');
599
+ return;
600
+ }
601
+ this.logger.error({
602
+ event: 'gate-label-missing-at-fix-exit',
603
+ owner,
604
+ repo,
605
+ issueNumber,
606
+ pr: prNumber,
607
+ }, 'waiting-for:implementation-review missing at fix-session exit — re-adding (FR-002)');
608
+ try {
609
+ await github.addLabels(owner, repo, issueNumber, [
610
+ WAITING_FOR_IMPLEMENTATION_REVIEW_LABEL,
611
+ ]);
612
+ }
613
+ catch (err) {
614
+ this.logger.warn({ err: String(err), issueNumber, prNumber }, 'ensureImplementationReviewGate: failed to re-add gate label — non-fatal');
615
+ }
616
+ }
562
617
  }
563
618
  //# sourceMappingURL=pr-feedback-handler.js.map