@generacy-ai/orchestrator 0.6.0 → 0.7.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/schema.d.ts +7 -7
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- 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/server.d.ts.map +1 -1
- package/dist/server.js +130 -26
- package/dist/server.js.map +1 -1
- package/dist/services/base-advance-monitor-service.d.ts +78 -0
- package/dist/services/base-advance-monitor-service.d.ts.map +1 -0
- package/dist/services/base-advance-monitor-service.js +233 -0
- package/dist/services/base-advance-monitor-service.js.map +1 -0
- package/dist/services/boot-resume-service.d.ts +19 -0
- package/dist/services/boot-resume-service.d.ts.map +1 -0
- package/dist/services/boot-resume-service.js +87 -0
- package/dist/services/boot-resume-service.js.map +1 -0
- package/dist/services/epic-completion-monitor-service.d.ts.map +1 -1
- package/dist/services/epic-completion-monitor-service.js +2 -0
- package/dist/services/epic-completion-monitor-service.js.map +1 -1
- package/dist/services/in-memory-queue-adapter.d.ts +4 -0
- package/dist/services/in-memory-queue-adapter.d.ts.map +1 -1
- package/dist/services/in-memory-queue-adapter.js +30 -3
- package/dist/services/in-memory-queue-adapter.js.map +1 -1
- package/dist/services/label-monitor-service.d.ts +3 -3
- package/dist/services/label-monitor-service.d.ts.map +1 -1
- package/dist/services/label-monitor-service.js +58 -41
- package/dist/services/label-monitor-service.js.map +1 -1
- package/dist/services/label-sync-service.d.ts.map +1 -1
- package/dist/services/label-sync-service.js +45 -10
- package/dist/services/label-sync-service.js.map +1 -1
- package/dist/services/merge-conflict-monitor-service.d.ts +73 -0
- package/dist/services/merge-conflict-monitor-service.d.ts.map +1 -0
- package/dist/services/merge-conflict-monitor-service.js +295 -0
- package/dist/services/merge-conflict-monitor-service.js.map +1 -0
- package/dist/services/orchestrator-version.d.ts +2 -0
- package/dist/services/orchestrator-version.d.ts.map +1 -0
- package/dist/services/orchestrator-version.js +23 -0
- package/dist/services/orchestrator-version.js.map +1 -0
- package/dist/services/phase-tracker-service.d.ts +10 -0
- package/dist/services/phase-tracker-service.d.ts.map +1 -1
- package/dist/services/phase-tracker-service.js +38 -0
- package/dist/services/phase-tracker-service.js.map +1 -1
- package/dist/services/post-activation-dispatch.d.ts +18 -0
- package/dist/services/post-activation-dispatch.d.ts.map +1 -0
- package/dist/services/post-activation-dispatch.js +30 -0
- package/dist/services/post-activation-dispatch.js.map +1 -0
- package/dist/services/pr-feedback-monitor-service.d.ts +13 -4
- package/dist/services/pr-feedback-monitor-service.d.ts.map +1 -1
- package/dist/services/pr-feedback-monitor-service.js +212 -26
- package/dist/services/pr-feedback-monitor-service.js.map +1 -1
- package/dist/services/redis-queue-adapter.d.ts +4 -0
- package/dist/services/redis-queue-adapter.d.ts.map +1 -1
- package/dist/services/redis-queue-adapter.js +90 -10
- package/dist/services/redis-queue-adapter.js.map +1 -1
- package/dist/services/worker-dispatcher.d.ts +14 -2
- package/dist/services/worker-dispatcher.d.ts.map +1 -1
- package/dist/services/worker-dispatcher.js +55 -2
- package/dist/services/worker-dispatcher.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/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/monitor.d.ts +72 -4
- package/dist/types/monitor.d.ts.map +1 -1
- package/dist/worker/base-merge.d.ts +54 -0
- package/dist/worker/base-merge.d.ts.map +1 -0
- package/dist/worker/base-merge.js +99 -0
- package/dist/worker/base-merge.js.map +1 -0
- package/dist/worker/clarification-markers.d.ts +29 -0
- package/dist/worker/clarification-markers.d.ts.map +1 -0
- package/dist/worker/clarification-markers.js +44 -0
- package/dist/worker/clarification-markers.js.map +1 -0
- package/dist/worker/clarification-poster.d.ts.map +1 -1
- package/dist/worker/clarification-poster.js +266 -25
- package/dist/worker/clarification-poster.js.map +1 -1
- package/dist/worker/claude-cli-worker.d.ts +21 -2
- package/dist/worker/claude-cli-worker.d.ts.map +1 -1
- package/dist/worker/claude-cli-worker.js +149 -4
- package/dist/worker/claude-cli-worker.js.map +1 -1
- package/dist/worker/cli-spawner.d.ts +4 -0
- package/dist/worker/cli-spawner.d.ts.map +1 -1
- package/dist/worker/cli-spawner.js +51 -7
- package/dist/worker/cli-spawner.js.map +1 -1
- package/dist/worker/config.d.ts +24 -8
- package/dist/worker/config.d.ts.map +1 -1
- package/dist/worker/config.js +37 -2
- package/dist/worker/config.js.map +1 -1
- package/dist/worker/evidence-hash.d.ts +32 -0
- package/dist/worker/evidence-hash.d.ts.map +1 -0
- package/dist/worker/evidence-hash.js +139 -0
- package/dist/worker/evidence-hash.js.map +1 -0
- package/dist/worker/handler-outcome-assertion.d.ts +38 -0
- package/dist/worker/handler-outcome-assertion.d.ts.map +1 -0
- package/dist/worker/handler-outcome-assertion.js +58 -0
- package/dist/worker/handler-outcome-assertion.js.map +1 -0
- package/dist/worker/handler-outcome.d.ts +50 -0
- package/dist/worker/handler-outcome.d.ts.map +1 -0
- package/dist/worker/handler-outcome.js +2 -0
- package/dist/worker/handler-outcome.js.map +1 -0
- package/dist/worker/label-manager.d.ts +58 -2
- package/dist/worker/label-manager.d.ts.map +1 -1
- package/dist/worker/label-manager.js +225 -27
- package/dist/worker/label-manager.js.map +1 -1
- package/dist/worker/merge-conflict-handler.d.ts +141 -0
- package/dist/worker/merge-conflict-handler.d.ts.map +1 -0
- package/dist/worker/merge-conflict-handler.js +642 -0
- package/dist/worker/merge-conflict-handler.js.map +1 -0
- package/dist/worker/merge-conflict-prompt.d.ts +35 -0
- package/dist/worker/merge-conflict-prompt.d.ts.map +1 -0
- package/dist/worker/merge-conflict-prompt.js +71 -0
- package/dist/worker/merge-conflict-prompt.js.map +1 -0
- package/dist/worker/merge-conflict-remedy.d.ts +42 -0
- package/dist/worker/merge-conflict-remedy.d.ts.map +1 -0
- package/dist/worker/merge-conflict-remedy.js +28 -0
- package/dist/worker/merge-conflict-remedy.js.map +1 -0
- package/dist/worker/output-tail-synthesis.d.ts +15 -0
- package/dist/worker/output-tail-synthesis.d.ts.map +1 -0
- package/dist/worker/output-tail-synthesis.js +25 -0
- package/dist/worker/output-tail-synthesis.js.map +1 -0
- package/dist/worker/output-tail.d.ts +13 -0
- package/dist/worker/output-tail.d.ts.map +1 -0
- package/dist/worker/output-tail.js +31 -0
- package/dist/worker/output-tail.js.map +1 -0
- package/dist/worker/pause-context.d.ts +30 -0
- package/dist/worker/pause-context.d.ts.map +1 -0
- package/dist/worker/pause-context.js +98 -0
- package/dist/worker/pause-context.js.map +1 -0
- package/dist/worker/phase-loop.d.ts +66 -0
- package/dist/worker/phase-loop.d.ts.map +1 -1
- package/dist/worker/phase-loop.js +295 -29
- package/dist/worker/phase-loop.js.map +1 -1
- package/dist/worker/pr-feedback-handler.d.ts +46 -46
- package/dist/worker/pr-feedback-handler.d.ts.map +1 -1
- package/dist/worker/pr-feedback-handler.js +276 -105
- package/dist/worker/pr-feedback-handler.js.map +1 -1
- package/dist/worker/pr-manager.d.ts +5 -0
- package/dist/worker/pr-manager.d.ts.map +1 -1
- package/dist/worker/pr-manager.js +7 -0
- package/dist/worker/pr-manager.js.map +1 -1
- package/dist/worker/product-diff.d.ts +39 -0
- package/dist/worker/product-diff.d.ts.map +1 -0
- package/dist/worker/product-diff.js +43 -0
- package/dist/worker/product-diff.js.map +1 -0
- package/dist/worker/provisioning-failure.d.ts +14 -0
- package/dist/worker/provisioning-failure.d.ts.map +1 -0
- package/dist/worker/provisioning-failure.js +2 -0
- package/dist/worker/provisioning-failure.js.map +1 -0
- package/dist/worker/repo-checkout.d.ts +14 -0
- package/dist/worker/repo-checkout.d.ts.map +1 -1
- package/dist/worker/repo-checkout.js +19 -1
- package/dist/worker/repo-checkout.js.map +1 -1
- package/dist/worker/stage-comment-manager.d.ts +42 -1
- package/dist/worker/stage-comment-manager.d.ts.map +1 -1
- package/dist/worker/stage-comment-manager.js +205 -1
- package/dist/worker/stage-comment-manager.js.map +1 -1
- package/dist/worker/terminal-label-op-error.d.ts +23 -0
- package/dist/worker/terminal-label-op-error.d.ts.map +1 -0
- package/dist/worker/terminal-label-op-error.js +27 -0
- package/dist/worker/terminal-label-op-error.js.map +1 -0
- package/dist/worker/types.d.ts +161 -2
- 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/dist/worker/validate-fix-handler.d.ts +79 -0
- package/dist/worker/validate-fix-handler.d.ts.map +1 -0
- package/dist/worker/validate-fix-handler.js +320 -0
- package/dist/worker/validate-fix-handler.js.map +1 -0
- package/dist/worker/worker-result.d.ts +39 -0
- package/dist/worker/worker-result.d.ts.map +1 -0
- package/dist/worker/worker-result.js +10 -0
- package/dist/worker/worker-result.js.map +1 -0
- package/package.json +6 -5
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { PHASE_SEQUENCE, PHASE_TO_STAGE } from './types.js';
|
|
2
|
+
import { isTerminalLabelOpError } from './terminal-label-op-error.js';
|
|
2
3
|
import { resolvePhaseTimeoutMs } from './config.js';
|
|
4
|
+
import { DEFAULT_INSTALL_TIMEOUT_MS, DEFAULT_VALIDATE_TIMEOUT_MS } from './cli-spawner.js';
|
|
3
5
|
import { postClarifications, hasPendingClarifications, integrateClarificationAnswers } from './clarification-poster.js';
|
|
4
6
|
import { buildSiblingPromptBlock } from './sibling-prompt.js';
|
|
5
7
|
import { checkSiblingReviews } from './sibling-review-checker.js';
|
|
8
|
+
import { EXCLUDED_PATH_PREFIXES, computeProductDiff, resolveBaseRef } from './product-diff.js';
|
|
9
|
+
import { boundOutputTail } from './output-tail.js';
|
|
10
|
+
import { synthesizeOutputTail } from './output-tail-synthesis.js';
|
|
11
|
+
import { performBaseMerge, resolveBaseBranch } from './base-merge.js';
|
|
12
|
+
import { MERGE_CONFLICT_REMEDY } from './merge-conflict-remedy.js';
|
|
13
|
+
import { writePauseContext } from './pause-context.js';
|
|
14
|
+
import { randomUUID } from 'node:crypto';
|
|
6
15
|
/** Phases that MUST produce file changes to be considered successful. */
|
|
7
16
|
const PHASES_REQUIRING_CHANGES = new Set(['implement']);
|
|
8
17
|
/**
|
|
@@ -33,9 +42,43 @@ export class PhaseLoop {
|
|
|
33
42
|
* Defaults to the global PHASE_SEQUENCE for backward compatibility.
|
|
34
43
|
*/
|
|
35
44
|
async executeLoop(context, config, deps, phaseSequence) {
|
|
45
|
+
try {
|
|
46
|
+
return await this.executeLoopInner(context, config, deps, phaseSequence);
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
// #889: LabelManager retry exhaustion. Translate the terminal error into
|
|
50
|
+
// a `failed-terminal` PhaseLoopResult so the worker can surface a bounded
|
|
51
|
+
// alert instead of re-throwing and crash-looping the queue.
|
|
52
|
+
if (isTerminalLabelOpError(error)) {
|
|
53
|
+
this.logger.error({
|
|
54
|
+
site: error.site,
|
|
55
|
+
labelOp: error.labelOp,
|
|
56
|
+
ghStderr: error.ghStderr,
|
|
57
|
+
}, 'Phase loop caught TerminalLabelOpError — surfacing as failed-terminal');
|
|
58
|
+
return {
|
|
59
|
+
results: [],
|
|
60
|
+
completed: false,
|
|
61
|
+
lastPhase: context.startPhase,
|
|
62
|
+
gateHit: false,
|
|
63
|
+
status: 'failed-terminal',
|
|
64
|
+
failureMetadata: {
|
|
65
|
+
site: error.site,
|
|
66
|
+
labelOp: error.labelOp,
|
|
67
|
+
ghStderr: error.ghStderr,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
async executeLoopInner(context, config, deps, phaseSequence) {
|
|
36
75
|
const sequence = phaseSequence ?? PHASE_SEQUENCE;
|
|
37
76
|
const { labelManager, stageCommentManager, gateChecker, cliSpawner, outputCapture, prManager, conversationLogger, jobEventEmitter } = deps;
|
|
77
|
+
const baseMergeRunner = deps.baseMergeRunner ?? performBaseMerge;
|
|
38
78
|
const results = [];
|
|
79
|
+
// Mint a stable per-invocation runId used inside the failure-alert marker.
|
|
80
|
+
// See specs/865-found-during-cockpit-v1/contracts/failure-alert-comment.md.
|
|
81
|
+
const runId = randomUUID();
|
|
39
82
|
// Track session ID across phases for conversation resume.
|
|
40
83
|
// When a CLI phase completes, its session ID is passed to the next phase
|
|
41
84
|
// so Claude CLI can reuse the conversation (keeping MCP servers warm and
|
|
@@ -50,11 +93,16 @@ export class PhaseLoop {
|
|
|
50
93
|
if (startIndex === -1) {
|
|
51
94
|
throw new Error(`Unknown starting phase: ${context.startPhase}`);
|
|
52
95
|
}
|
|
53
|
-
this.logger.info({ startPhase: context.startPhase, startIndex, totalPhases: sequence.length }, 'Starting phase loop');
|
|
96
|
+
this.logger.info({ startPhase: context.startPhase, startIndex, totalPhases: sequence.length, runId }, 'Starting phase loop');
|
|
54
97
|
// Track actual timestamps per phase
|
|
55
98
|
const phaseTimestamps = new Map();
|
|
56
99
|
for (let i = startIndex; i < sequence.length; i++) {
|
|
57
100
|
const phase = sequence[i];
|
|
101
|
+
// #914: per-iteration guard enforcing at-most-one pre-phase base-merge
|
|
102
|
+
// per cycle. Block-scoped `let` inside the for-body is load-bearing —
|
|
103
|
+
// it re-initializes on every iteration (including retry re-entries via
|
|
104
|
+
// `i--; continue;`), keeping the retry semantics of Q3-A intact.
|
|
105
|
+
let hasBaseMergedThisCycle = false;
|
|
58
106
|
// Check abort signal before starting each phase
|
|
59
107
|
if (context.signal.aborted) {
|
|
60
108
|
this.logger.warn({ phase }, 'Abort signal detected, stopping phase loop');
|
|
@@ -85,10 +133,39 @@ export class PhaseLoop {
|
|
|
85
133
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps),
|
|
86
134
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
87
135
|
});
|
|
136
|
+
// 2b. Pre-phase base-merge (#864) — implement, pre-validate, validate only.
|
|
137
|
+
// On {ok:false} the workflow pauses with the merge-conflict gate; on {ok:true}
|
|
138
|
+
// execution proceeds normally. Non-conflict git failures throw and are caught
|
|
139
|
+
// in the same try/catch as phase execution below.
|
|
140
|
+
//
|
|
141
|
+
// #914: the `hasBaseMergedThisCycle` guard enforces the at-most-once
|
|
142
|
+
// invariant. Symmetry immunization per Q5-B — even the implement path,
|
|
143
|
+
// which historically never double-merged, is wrapped so a future edit
|
|
144
|
+
// cannot reintroduce the buggy shape by accident.
|
|
145
|
+
if (phase === 'implement' && !hasBaseMergedThisCycle) {
|
|
146
|
+
const baseMergeOutcome = await this.runPreImplementBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps);
|
|
147
|
+
if (baseMergeOutcome !== undefined) {
|
|
148
|
+
return baseMergeOutcome;
|
|
149
|
+
}
|
|
150
|
+
hasBaseMergedThisCycle = true;
|
|
151
|
+
}
|
|
88
152
|
// 3. Execute the phase
|
|
89
153
|
let result;
|
|
90
154
|
try {
|
|
91
155
|
if (phase === 'validate') {
|
|
156
|
+
// 3a. Pre-phase base-merge for the validate cycle (#864, #914) —
|
|
157
|
+
// ephemeral. Runs ONCE before the first spawned command of the
|
|
158
|
+
// cycle (install, or validate itself if no preValidateCommand).
|
|
159
|
+
// The second between-install-and-validate call site (#864 original)
|
|
160
|
+
// was deleted in #914 — its `git reset --hard` + `git clean -fd`
|
|
161
|
+
// was destroying the freshly-installed toolchain (snappoll#4).
|
|
162
|
+
if (!hasBaseMergedThisCycle) {
|
|
163
|
+
const preValidateMergeOutcome = await this.runPreValidateBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps);
|
|
164
|
+
if (preValidateMergeOutcome !== undefined) {
|
|
165
|
+
return preValidateMergeOutcome;
|
|
166
|
+
}
|
|
167
|
+
hasBaseMergedThisCycle = true;
|
|
168
|
+
}
|
|
92
169
|
// Pre-validate: install dependencies if configured
|
|
93
170
|
if (config.preValidateCommand) {
|
|
94
171
|
const installResult = await cliSpawner.runPreValidateInstall(context.checkoutPath, config.preValidateCommand, context.signal);
|
|
@@ -96,12 +173,15 @@ export class PhaseLoop {
|
|
|
96
173
|
this.logger.error({ phase, error: installResult.error?.message }, 'Pre-validate install failed');
|
|
97
174
|
results.push(installResult);
|
|
98
175
|
await labelManager.onError(phase);
|
|
176
|
+
const evidence = this.buildErrorEvidence(config.preValidateCommand, installResult, DEFAULT_INSTALL_TIMEOUT_MS, undefined);
|
|
99
177
|
await stageCommentManager.updateStageComment({
|
|
100
178
|
stage,
|
|
101
179
|
status: 'error',
|
|
102
180
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
103
181
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
182
|
+
errorEvidence: evidence,
|
|
104
183
|
});
|
|
184
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
105
185
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
106
186
|
}
|
|
107
187
|
}
|
|
@@ -134,12 +214,23 @@ export class PhaseLoop {
|
|
|
134
214
|
// Unexpected error during spawning
|
|
135
215
|
this.logger.error({ phase, error: String(error) }, 'Unexpected error during phase execution');
|
|
136
216
|
await labelManager.onError(phase);
|
|
217
|
+
const syntheticResult = {
|
|
218
|
+
phase,
|
|
219
|
+
success: false,
|
|
220
|
+
exitCode: 1,
|
|
221
|
+
durationMs: 0,
|
|
222
|
+
output: [],
|
|
223
|
+
error: { message: String(error), output: '', phase },
|
|
224
|
+
};
|
|
225
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, syntheticResult, undefined, 'spawn-error');
|
|
137
226
|
await stageCommentManager.updateStageComment({
|
|
138
227
|
stage,
|
|
139
228
|
status: 'error',
|
|
140
229
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
141
230
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
231
|
+
errorEvidence: evidence,
|
|
142
232
|
});
|
|
233
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
143
234
|
throw error;
|
|
144
235
|
}
|
|
145
236
|
results.push(result);
|
|
@@ -165,6 +256,15 @@ export class PhaseLoop {
|
|
|
165
256
|
// Guard: fail if no progress made (prevents infinite loop)
|
|
166
257
|
if (lastTasksRemaining !== undefined && tasksRemaining >= lastTasksRemaining) {
|
|
167
258
|
this.logger.error({ phase, tasksRemaining, lastTasksRemaining }, 'Implement increment made no progress — failing to prevent infinite loop');
|
|
259
|
+
// FR-007: set result.error BEFORE evidence derivation so the alert
|
|
260
|
+
// and stage-comment evidence blocks have diagnostic content.
|
|
261
|
+
result.success = false;
|
|
262
|
+
result.error = {
|
|
263
|
+
message: 'Implement increment made no progress — aborting to prevent infinite loop',
|
|
264
|
+
output: `no progress: tasks_remaining stayed at ${tasksRemaining} across two increments`,
|
|
265
|
+
phase,
|
|
266
|
+
};
|
|
267
|
+
const evidence = this.buildErrorEvidence('implement (no-progress guard)', result, undefined, 'no-progress');
|
|
168
268
|
await labelManager.onError(phase);
|
|
169
269
|
await stageCommentManager.updateStageComment({
|
|
170
270
|
stage,
|
|
@@ -172,13 +272,9 @@ export class PhaseLoop {
|
|
|
172
272
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
173
273
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
174
274
|
prUrl: context.prUrl,
|
|
275
|
+
errorEvidence: evidence,
|
|
175
276
|
});
|
|
176
|
-
|
|
177
|
-
result.error = {
|
|
178
|
-
message: 'Implement increment made no progress — aborting to prevent infinite loop',
|
|
179
|
-
stderr: '',
|
|
180
|
-
phase,
|
|
181
|
-
};
|
|
277
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
182
278
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
183
279
|
}
|
|
184
280
|
lastTasksRemaining = tasksRemaining;
|
|
@@ -229,13 +325,44 @@ export class PhaseLoop {
|
|
|
229
325
|
continue;
|
|
230
326
|
}
|
|
231
327
|
}
|
|
328
|
+
// #892: bounded validate-fix cycle. Fires ONLY on the resume-driven
|
|
329
|
+
// validate re-run (structurally gated on WorkerContext.resumeReason
|
|
330
|
+
// === 'base-advance'). First-time reds continue through onError.
|
|
331
|
+
if (phase === 'validate'
|
|
332
|
+
&& context.resumeReason === 'base-advance'
|
|
333
|
+
&& deps.validateFixHandler
|
|
334
|
+
&& prManager.getPrNumber() !== undefined) {
|
|
335
|
+
try {
|
|
336
|
+
// resolveBaseBranch returns `origin/<name>`; strip prefix to
|
|
337
|
+
// match the base-branch string used in listOpenPullRequests results.
|
|
338
|
+
const baseRefFull = await resolveBaseBranch(context.github, prManager, context.checkoutPath, context.item.owner, context.item.repo, this.logger);
|
|
339
|
+
const baseBranch = baseRefFull.startsWith('origin/')
|
|
340
|
+
? baseRefFull.slice('origin/'.length)
|
|
341
|
+
: baseRefFull;
|
|
342
|
+
await deps.validateFixHandler.handle(context.item, context.checkoutPath, { prNumber: prManager.getPrNumber(), baseBranch }, {
|
|
343
|
+
stdout: result.capturedStdout ?? '',
|
|
344
|
+
// #890 renamed `error.stderr` → `error.output` (merged tail);
|
|
345
|
+
// fall back to it when the raw stderr buffer is empty.
|
|
346
|
+
stderr: result.capturedStderr ?? result.error?.output ?? '',
|
|
347
|
+
exitCode: result.exitCode,
|
|
348
|
+
}, context.github);
|
|
349
|
+
}
|
|
350
|
+
catch (err) {
|
|
351
|
+
this.logger.warn({ err: String(err), phase, issueNumber: context.item.issueNumber }, 'validate-fix handler threw — falling through to standard onError path');
|
|
352
|
+
}
|
|
353
|
+
}
|
|
232
354
|
await labelManager.onError(phase);
|
|
355
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, result, phase === 'validate'
|
|
356
|
+
? DEFAULT_VALIDATE_TIMEOUT_MS
|
|
357
|
+
: resolvePhaseTimeoutMs(config, phase), undefined);
|
|
233
358
|
await stageCommentManager.updateStageComment({
|
|
234
359
|
stage,
|
|
235
360
|
status: 'error',
|
|
236
361
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
237
362
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
363
|
+
errorEvidence: evidence,
|
|
238
364
|
});
|
|
365
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
239
366
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
240
367
|
}
|
|
241
368
|
// 5. Commit, push, and ensure draft PR exists (before marking complete)
|
|
@@ -243,42 +370,59 @@ export class PhaseLoop {
|
|
|
243
370
|
if (prUrl) {
|
|
244
371
|
context.prUrl = prUrl;
|
|
245
372
|
}
|
|
246
|
-
// 5b. Fail phases that require
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
let
|
|
373
|
+
// 5b. Fail phases that require product-code changes but produced none.
|
|
374
|
+
// Compares the branch's cumulative diff against its PR base ref (or the
|
|
375
|
+
// default branch when no PR yet) and rejects when every changed file lives
|
|
376
|
+
// under EXCLUDED_PATH_PREFIXES. See specs/820-*.
|
|
377
|
+
if (PHASES_REQUIRING_CHANGES.has(phase)) {
|
|
378
|
+
let productFiles;
|
|
379
|
+
let changedFiles;
|
|
380
|
+
let baseRef;
|
|
252
381
|
try {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
const commits = await context.github.getCommitsBetween(`origin/${defaultBranch}`, branch);
|
|
256
|
-
hasPriorImplementation = commits.some((c) => c.message.includes(`complete ${phase} phase`) ||
|
|
257
|
-
c.message.includes('feat: complete T') ||
|
|
258
|
-
c.message.includes('partial implement progress'));
|
|
382
|
+
baseRef = await resolveBaseRef(context.github, prManager, context.item.owner, context.item.repo);
|
|
383
|
+
({ productFiles, changedFiles } = await computeProductDiff(context.github, baseRef));
|
|
259
384
|
}
|
|
260
|
-
catch {
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
if (hasPriorImplementation) {
|
|
264
|
-
this.logger.warn({ phase }, 'Phase produced no new changes but branch has prior implementation commits — continuing');
|
|
265
|
-
}
|
|
266
|
-
else {
|
|
267
|
-
this.logger.error({ phase }, 'Phase completed with exit code 0 but produced no file changes');
|
|
385
|
+
catch (err) {
|
|
386
|
+
this.logger.error({ phase, err: String(err) }, 'product-diff computation threw — treating as detection failure');
|
|
268
387
|
await labelManager.onError(phase);
|
|
388
|
+
result.success = false;
|
|
389
|
+
result.error = {
|
|
390
|
+
message: `Phase "${phase}" product-diff detection failed: ${String(err)}`,
|
|
391
|
+
output: '',
|
|
392
|
+
phase,
|
|
393
|
+
};
|
|
394
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, result, undefined, 'product-diff-error');
|
|
269
395
|
await stageCommentManager.updateStageComment({
|
|
270
396
|
stage,
|
|
271
397
|
status: 'error',
|
|
272
398
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
273
399
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
274
400
|
prUrl: context.prUrl,
|
|
401
|
+
errorEvidence: evidence,
|
|
275
402
|
});
|
|
403
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
404
|
+
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
405
|
+
}
|
|
406
|
+
if (productFiles.length === 0) {
|
|
407
|
+
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);
|
|
276
409
|
result.success = false;
|
|
277
410
|
result.error = {
|
|
278
|
-
message: `Phase "${phase}"
|
|
279
|
-
|
|
411
|
+
message: `Phase "${phase}" produced no product-code changes — all changed files are under excluded prefixes ` +
|
|
412
|
+
`[${EXCLUDED_PATH_PREFIXES.join(', ')}]. Implement must modify at least one non-excluded file.`,
|
|
413
|
+
output: '',
|
|
280
414
|
phase,
|
|
281
415
|
};
|
|
416
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, result, undefined, 'no-product-code-changes');
|
|
417
|
+
await stageCommentManager.updateStageComment({
|
|
418
|
+
stage,
|
|
419
|
+
status: 'error',
|
|
420
|
+
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
421
|
+
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
422
|
+
prUrl: context.prUrl,
|
|
423
|
+
errorEvidence: evidence,
|
|
424
|
+
});
|
|
425
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
282
426
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
283
427
|
}
|
|
284
428
|
}
|
|
@@ -401,6 +545,128 @@ export class PhaseLoop {
|
|
|
401
545
|
gateHit: false,
|
|
402
546
|
};
|
|
403
547
|
}
|
|
548
|
+
/**
|
|
549
|
+
* Run the pre-implement base-merge (#864, committed). On conflict, pause the
|
|
550
|
+
* workflow via `waiting-for:merge-conflicts` and return the pause result;
|
|
551
|
+
* on clean merge, return `undefined` so the caller proceeds with phase execution.
|
|
552
|
+
*/
|
|
553
|
+
async runPreImplementBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps) {
|
|
554
|
+
return this.runPrePhaseBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps, { commit: true });
|
|
555
|
+
}
|
|
556
|
+
/**
|
|
557
|
+
* Run the pre-validate/validate base-merge (#864, ephemeral). Symmetric with
|
|
558
|
+
* `runPreImplementBaseMerge` but `opts.commit === false` — the merge is left
|
|
559
|
+
* as an un-committed merge in the workspace and MUST be discarded by the next
|
|
560
|
+
* phase's reset-at-start (FR-006).
|
|
561
|
+
*/
|
|
562
|
+
async runPreValidateBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps) {
|
|
563
|
+
return this.runPrePhaseBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps, { commit: false });
|
|
564
|
+
}
|
|
565
|
+
/**
|
|
566
|
+
* Shared pre-phase base-merge implementation. Resolves the base ref, invokes
|
|
567
|
+
* the runner, and (on conflict) pauses with `waiting-for:merge-conflicts` +
|
|
568
|
+
* `errorEvidence.mergeConflict`. Reuses the existing gate-return path so
|
|
569
|
+
* #849's paired resume-dedupe clear applies symmetrically.
|
|
570
|
+
*/
|
|
571
|
+
async runPrePhaseBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps, opts) {
|
|
572
|
+
if (!context.branch) {
|
|
573
|
+
this.logger.warn({ phase }, 'Skipping pre-phase base-merge — WorkerContext.branch not set');
|
|
574
|
+
return undefined;
|
|
575
|
+
}
|
|
576
|
+
const baseRef = await resolveBaseBranch(context.github, deps.prManager, context.checkoutPath, context.item.owner, context.item.repo, this.logger);
|
|
577
|
+
const mergeResult = await baseMergeRunner(context.checkoutPath, context.branch, baseRef, opts, this.logger);
|
|
578
|
+
if (mergeResult.ok) {
|
|
579
|
+
this.logger.info({ phase, baseRef, commit: opts.commit, mergeSha: mergeResult.mergeSha }, 'Pre-phase base-merge succeeded');
|
|
580
|
+
return undefined;
|
|
581
|
+
}
|
|
582
|
+
// Conflict: pause with merge-conflict gate.
|
|
583
|
+
const gateLabel = 'waiting-for:merge-conflicts';
|
|
584
|
+
this.logger.warn({ phase, baseRef, conflictedPaths: mergeResult.conflictedPaths }, 'Pre-phase base-merge conflict — pausing workflow');
|
|
585
|
+
deps.jobEventEmitter?.('job:paused', {
|
|
586
|
+
jobId: context.jobId,
|
|
587
|
+
workflowName: context.item.workflowName,
|
|
588
|
+
owner: context.item.owner,
|
|
589
|
+
repo: context.item.repo,
|
|
590
|
+
issueNumber: context.item.issueNumber,
|
|
591
|
+
status: 'paused',
|
|
592
|
+
currentStep: phase,
|
|
593
|
+
gateLabel,
|
|
594
|
+
});
|
|
595
|
+
// #898 FR-011/FR-012: substitute the manual-remedy template with the
|
|
596
|
+
// concrete branch / bare base / issue-ref for this pause. Keeps the
|
|
597
|
+
// renderer content-agnostic — it just prints the strings as given.
|
|
598
|
+
const bareBase = mergeResult.baseRef.replace(/^origin\//, '');
|
|
599
|
+
const branchName = context.branch ?? '<branch>';
|
|
600
|
+
const issueRef = `${context.item.owner}/${context.item.repo}#${context.item.issueNumber}`;
|
|
601
|
+
const substitutedSteps = MERGE_CONFLICT_REMEDY.steps.map((step) => step
|
|
602
|
+
.replace(/<branch>/g, branchName)
|
|
603
|
+
.replace(/<base>/g, bareBase)
|
|
604
|
+
.replace(/<issue-ref>/g, issueRef));
|
|
605
|
+
await deps.stageCommentManager.updateStageComment({
|
|
606
|
+
stage,
|
|
607
|
+
status: 'in_progress',
|
|
608
|
+
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps),
|
|
609
|
+
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
610
|
+
prUrl: context.prUrl,
|
|
611
|
+
errorEvidence: {
|
|
612
|
+
mergeConflict: {
|
|
613
|
+
baseRef: mergeResult.baseRef,
|
|
614
|
+
conflictedPaths: mergeResult.conflictedPaths,
|
|
615
|
+
manualRemedy: {
|
|
616
|
+
steps: substitutedSteps,
|
|
617
|
+
warning: MERGE_CONFLICT_REMEDY.warning,
|
|
618
|
+
},
|
|
619
|
+
},
|
|
620
|
+
},
|
|
621
|
+
});
|
|
622
|
+
// #902 FR-003: persist pause-context BEFORE applying the pause label.
|
|
623
|
+
// The worker's MergeConflictHandler dispatch reads this to populate
|
|
624
|
+
// `metadata.phase` — the single source of truth for the interrupted phase.
|
|
625
|
+
// If the write throws, we do NOT apply the pause label — the pause simply
|
|
626
|
+
// doesn't materialize, preventing the dead-park class.
|
|
627
|
+
const workflowId = `${context.item.owner}/${context.item.repo}#${context.item.issueNumber}`;
|
|
628
|
+
await writePauseContext(context.checkoutPath, workflowId, {
|
|
629
|
+
phase,
|
|
630
|
+
writtenAt: new Date().toISOString(),
|
|
631
|
+
issueRef: workflowId,
|
|
632
|
+
});
|
|
633
|
+
await deps.labelManager.onGateHit(phase, gateLabel);
|
|
634
|
+
return {
|
|
635
|
+
results: [],
|
|
636
|
+
completed: false,
|
|
637
|
+
lastPhase: phase,
|
|
638
|
+
gateHit: true,
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Build the `errorEvidence` payload rendered inside the stage comment on
|
|
643
|
+
* `status: 'error'` transitions. See specs/847-found-during-cockpit-v1/
|
|
644
|
+
* contracts/failure-evidence-block.md for the derivation rules.
|
|
645
|
+
*/
|
|
646
|
+
buildErrorEvidence(command, result, resolvedTimeoutMs, classifier) {
|
|
647
|
+
const message = result.error?.message ?? '';
|
|
648
|
+
const exitDescriptor = classifier
|
|
649
|
+
? `failed post-exit: ${classifier} (process exit ${result.exitCode})`
|
|
650
|
+
: message.includes('timed out') && resolvedTimeoutMs !== undefined
|
|
651
|
+
? `killed (SIGTERM) after ${resolvedTimeoutMs}ms`
|
|
652
|
+
: message.includes('was aborted')
|
|
653
|
+
? 'aborted'
|
|
654
|
+
: `exit ${result.exitCode}`;
|
|
655
|
+
// Shell path: `error.output` is the ring-buffer tail (already merged).
|
|
656
|
+
// CLI path: `error.output` is empty; synthesize from parsed `type: 'text'` chunks.
|
|
657
|
+
// For synthetic PhaseResults (no-progress guard, product-diff failures, catch
|
|
658
|
+
// block): `error.output` is set directly by the caller (still merged-shape).
|
|
659
|
+
const rawOutput = result.error?.output ?? '';
|
|
660
|
+
const outputTail = rawOutput.length > 0
|
|
661
|
+
? boundOutputTail(rawOutput)
|
|
662
|
+
: synthesizeOutputTail(result.output);
|
|
663
|
+
return {
|
|
664
|
+
command,
|
|
665
|
+
exitDescriptor,
|
|
666
|
+
outputTail,
|
|
667
|
+
...(classifier ? { reason: message } : {}),
|
|
668
|
+
};
|
|
669
|
+
}
|
|
404
670
|
/**
|
|
405
671
|
* Build a phase progress array for stage comment updates.
|
|
406
672
|
*
|
|
@@ -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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"}
|