@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.
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +47 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +459 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +13 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/launcher/agent-launcher.d.ts +15 -16
- package/dist/launcher/agent-launcher.d.ts.map +1 -1
- package/dist/launcher/agent-launcher.js +54 -23
- package/dist/launcher/agent-launcher.js.map +1 -1
- package/dist/launcher/constants.d.ts +5 -0
- package/dist/launcher/constants.d.ts.map +1 -0
- package/dist/launcher/constants.js +5 -0
- package/dist/launcher/constants.js.map +1 -0
- package/dist/launcher/errors.d.ts +15 -0
- package/dist/launcher/errors.d.ts.map +1 -0
- package/dist/launcher/errors.js +25 -0
- package/dist/launcher/errors.js.map +1 -0
- package/dist/launcher/generic-subprocess-plugin.d.ts +1 -0
- package/dist/launcher/generic-subprocess-plugin.d.ts.map +1 -1
- package/dist/launcher/generic-subprocess-plugin.js +2 -0
- package/dist/launcher/generic-subprocess-plugin.js.map +1 -1
- package/dist/launcher/index.d.ts +2 -1
- package/dist/launcher/index.d.ts.map +1 -1
- package/dist/launcher/index.js +1 -0
- package/dist/launcher/index.js.map +1 -1
- package/dist/launcher/types.d.ts +81 -4
- package/dist/launcher/types.d.ts.map +1 -1
- package/dist/routes/health.d.ts +7 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +5 -0
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/internal-relay-events.d.ts +2 -2
- package/dist/routes/internal-relay-events.d.ts.map +1 -1
- package/dist/routes/internal-relay-events.js +12 -0
- package/dist/routes/internal-relay-events.js.map +1 -1
- package/dist/routes/retained-tunnel-event.d.ts +20 -0
- package/dist/routes/retained-tunnel-event.d.ts.map +1 -0
- package/dist/routes/retained-tunnel-event.js +67 -0
- package/dist/routes/retained-tunnel-event.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +168 -27
- package/dist/server.js.map +1 -1
- package/dist/services/adaptive-poll-controller.d.ts +75 -0
- package/dist/services/adaptive-poll-controller.d.ts.map +1 -0
- package/dist/services/adaptive-poll-controller.js +96 -0
- package/dist/services/adaptive-poll-controller.js.map +1 -0
- package/dist/services/clarification-answer-monitor-service.d.ts +71 -0
- package/dist/services/clarification-answer-monitor-service.d.ts.map +1 -0
- package/dist/services/clarification-answer-monitor-service.js +366 -0
- package/dist/services/clarification-answer-monitor-service.js.map +1 -0
- package/dist/services/failure-fingerprint-tracker.d.ts +28 -0
- package/dist/services/failure-fingerprint-tracker.d.ts.map +1 -0
- package/dist/services/failure-fingerprint-tracker.js +38 -0
- package/dist/services/failure-fingerprint-tracker.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +3 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/label-monitor-service.d.ts +2 -2
- package/dist/services/label-monitor-service.d.ts.map +1 -1
- package/dist/services/label-monitor-service.js +33 -16
- package/dist/services/label-monitor-service.js.map +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -1
- package/dist/services/merge-conflict-monitor-service.js +33 -13
- package/dist/services/merge-conflict-monitor-service.js.map +1 -1
- package/dist/services/post-activation-retry.d.ts +3 -0
- package/dist/services/post-activation-retry.d.ts.map +1 -1
- package/dist/services/post-activation-retry.js +34 -2
- package/dist/services/post-activation-retry.js.map +1 -1
- package/dist/services/pr-feedback-monitor-service.d.ts +1 -1
- package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
- package/dist/services/pr-feedback-monitor-service.js +33 -16
- package/dist/services/pr-feedback-monitor-service.js.map +1 -1
- package/dist/services/relay-bridge.d.ts +1 -0
- package/dist/services/relay-bridge.d.ts.map +1 -1
- package/dist/services/relay-bridge.js +21 -0
- package/dist/services/relay-bridge.js.map +1 -1
- package/dist/services/smee-channel-resolver.d.ts +60 -0
- package/dist/services/smee-channel-resolver.d.ts.map +1 -0
- package/dist/services/smee-channel-resolver.js +177 -0
- package/dist/services/smee-channel-resolver.js.map +1 -0
- package/dist/services/webhook-setup-service.d.ts +115 -111
- package/dist/services/webhook-setup-service.d.ts.map +1 -1
- package/dist/services/webhook-setup-service.js +377 -209
- package/dist/services/webhook-setup-service.js.map +1 -1
- package/dist/types/api.d.ts +3 -0
- package/dist/types/api.d.ts.map +1 -1
- package/dist/types/api.js +1 -0
- package/dist/types/api.js.map +1 -1
- package/dist/types/monitor.d.ts +15 -2
- package/dist/types/monitor.d.ts.map +1 -1
- package/dist/worker/clarification-markers.d.ts +62 -0
- package/dist/worker/clarification-markers.d.ts.map +1 -1
- package/dist/worker/clarification-markers.js +101 -0
- package/dist/worker/clarification-markers.js.map +1 -1
- package/dist/worker/clarification-poster.d.ts +102 -6
- package/dist/worker/clarification-poster.d.ts.map +1 -1
- package/dist/worker/clarification-poster.js +299 -89
- package/dist/worker/clarification-poster.js.map +1 -1
- package/dist/worker/claude-cli-worker.d.ts +7 -0
- package/dist/worker/claude-cli-worker.d.ts.map +1 -1
- package/dist/worker/claude-cli-worker.js +7 -3
- package/dist/worker/claude-cli-worker.js.map +1 -1
- package/dist/worker/cli-spawner.d.ts.map +1 -1
- package/dist/worker/cli-spawner.js +2 -0
- package/dist/worker/cli-spawner.js.map +1 -1
- package/dist/worker/config.d.ts +396 -0
- package/dist/worker/config.d.ts.map +1 -1
- package/dist/worker/config.js +142 -0
- package/dist/worker/config.js.map +1 -1
- package/dist/worker/failure-fingerprint.d.ts +41 -0
- package/dist/worker/failure-fingerprint.d.ts.map +1 -0
- package/dist/worker/failure-fingerprint.js +75 -0
- package/dist/worker/failure-fingerprint.js.map +1 -0
- package/dist/worker/label-manager.d.ts +42 -0
- package/dist/worker/label-manager.d.ts.map +1 -1
- package/dist/worker/label-manager.js +108 -4
- package/dist/worker/label-manager.js.map +1 -1
- package/dist/worker/phase-loop.d.ts +30 -0
- package/dist/worker/phase-loop.d.ts.map +1 -1
- package/dist/worker/phase-loop.js +158 -27
- package/dist/worker/phase-loop.js.map +1 -1
- package/dist/worker/pr-feedback-handler.d.ts +13 -0
- package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
- package/dist/worker/pr-feedback-handler.js +58 -3
- package/dist/worker/pr-feedback-handler.js.map +1 -1
- package/dist/worker/stage-comment-manager.d.ts +5 -0
- package/dist/worker/stage-comment-manager.d.ts.map +1 -1
- package/dist/worker/stage-comment-manager.js +8 -1
- package/dist/worker/stage-comment-manager.js.map +1 -1
- package/dist/worker/terminal-label-op-error.d.ts +1 -1
- package/dist/worker/terminal-label-op-error.d.ts.map +1 -1
- package/dist/worker/terminal-label-op-error.js.map +1 -1
- package/dist/worker/types.d.ts +51 -0
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/types.js +11 -0
- package/dist/worker/types.js.map +1 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
430
|
-
|
|
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
|
-
//
|
|
447
|
-
//
|
|
448
|
-
|
|
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
|
-
//
|
|
496
|
-
|
|
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;
|
|
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
|
-
|
|
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
|