@generacy-ai/orchestrator 0.6.0 → 0.8.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 +32 -1
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +436 -7
- package/dist/config/schema.d.ts.map +1 -1
- 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/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.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/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 +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 +150 -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 +53 -7
- package/dist/worker/cli-spawner.js.map +1 -1
- package/dist/worker/config.d.ts +420 -8
- package/dist/worker/config.d.ts.map +1 -1
- package/dist/worker/config.js +179 -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 +329 -30
- 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 +286 -108
- 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 +181 -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 +12 -7
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
import { PHASE_SEQUENCE, PHASE_TO_STAGE } from './types.js';
|
|
2
|
-
import {
|
|
2
|
+
import { isTerminalLabelOpError } from './terminal-label-op-error.js';
|
|
3
|
+
import { resolvePhaseTimeoutMs, resolveAgentForPhase } 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,14 +42,53 @@ 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
|
|
42
85
|
// carrying forward accumulated context).
|
|
43
86
|
let currentSessionId;
|
|
87
|
+
// #814: track the resolved provider + model across phases. `currentProvider`
|
|
88
|
+
// gates the session-drop-on-provider-switch behavior (FR-011); `currentModel`
|
|
89
|
+
// feeds the `agent.model.transition` log line on same-provider model change.
|
|
90
|
+
let currentProvider;
|
|
91
|
+
let currentModel;
|
|
44
92
|
let implementRetryCount = 0;
|
|
45
93
|
// Track last seen tasks_remaining for the implement increment guard.
|
|
46
94
|
// Prevents infinite loops when no progress is made between increments.
|
|
@@ -50,11 +98,16 @@ export class PhaseLoop {
|
|
|
50
98
|
if (startIndex === -1) {
|
|
51
99
|
throw new Error(`Unknown starting phase: ${context.startPhase}`);
|
|
52
100
|
}
|
|
53
|
-
this.logger.info({ startPhase: context.startPhase, startIndex, totalPhases: sequence.length }, 'Starting phase loop');
|
|
101
|
+
this.logger.info({ startPhase: context.startPhase, startIndex, totalPhases: sequence.length, runId }, 'Starting phase loop');
|
|
54
102
|
// Track actual timestamps per phase
|
|
55
103
|
const phaseTimestamps = new Map();
|
|
56
104
|
for (let i = startIndex; i < sequence.length; i++) {
|
|
57
105
|
const phase = sequence[i];
|
|
106
|
+
// #914: per-iteration guard enforcing at-most-one pre-phase base-merge
|
|
107
|
+
// per cycle. Block-scoped `let` inside the for-body is load-bearing —
|
|
108
|
+
// it re-initializes on every iteration (including retry re-entries via
|
|
109
|
+
// `i--; continue;`), keeping the retry semantics of Q3-A intact.
|
|
110
|
+
let hasBaseMergedThisCycle = false;
|
|
58
111
|
// Check abort signal before starting each phase
|
|
59
112
|
if (context.signal.aborted) {
|
|
60
113
|
this.logger.warn({ phase }, 'Abort signal detected, stopping phase loop');
|
|
@@ -85,10 +138,39 @@ export class PhaseLoop {
|
|
|
85
138
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps),
|
|
86
139
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
87
140
|
});
|
|
141
|
+
// 2b. Pre-phase base-merge (#864) — implement, pre-validate, validate only.
|
|
142
|
+
// On {ok:false} the workflow pauses with the merge-conflict gate; on {ok:true}
|
|
143
|
+
// execution proceeds normally. Non-conflict git failures throw and are caught
|
|
144
|
+
// in the same try/catch as phase execution below.
|
|
145
|
+
//
|
|
146
|
+
// #914: the `hasBaseMergedThisCycle` guard enforces the at-most-once
|
|
147
|
+
// invariant. Symmetry immunization per Q5-B — even the implement path,
|
|
148
|
+
// which historically never double-merged, is wrapped so a future edit
|
|
149
|
+
// cannot reintroduce the buggy shape by accident.
|
|
150
|
+
if (phase === 'implement' && !hasBaseMergedThisCycle) {
|
|
151
|
+
const baseMergeOutcome = await this.runPreImplementBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps);
|
|
152
|
+
if (baseMergeOutcome !== undefined) {
|
|
153
|
+
return baseMergeOutcome;
|
|
154
|
+
}
|
|
155
|
+
hasBaseMergedThisCycle = true;
|
|
156
|
+
}
|
|
88
157
|
// 3. Execute the phase
|
|
89
158
|
let result;
|
|
90
159
|
try {
|
|
91
160
|
if (phase === 'validate') {
|
|
161
|
+
// 3a. Pre-phase base-merge for the validate cycle (#864, #914) —
|
|
162
|
+
// ephemeral. Runs ONCE before the first spawned command of the
|
|
163
|
+
// cycle (install, or validate itself if no preValidateCommand).
|
|
164
|
+
// The second between-install-and-validate call site (#864 original)
|
|
165
|
+
// was deleted in #914 — its `git reset --hard` + `git clean -fd`
|
|
166
|
+
// was destroying the freshly-installed toolchain (snappoll#4).
|
|
167
|
+
if (!hasBaseMergedThisCycle) {
|
|
168
|
+
const preValidateMergeOutcome = await this.runPreValidateBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps);
|
|
169
|
+
if (preValidateMergeOutcome !== undefined) {
|
|
170
|
+
return preValidateMergeOutcome;
|
|
171
|
+
}
|
|
172
|
+
hasBaseMergedThisCycle = true;
|
|
173
|
+
}
|
|
92
174
|
// Pre-validate: install dependencies if configured
|
|
93
175
|
if (config.preValidateCommand) {
|
|
94
176
|
const installResult = await cliSpawner.runPreValidateInstall(context.checkoutPath, config.preValidateCommand, context.signal);
|
|
@@ -96,12 +178,15 @@ export class PhaseLoop {
|
|
|
96
178
|
this.logger.error({ phase, error: installResult.error?.message }, 'Pre-validate install failed');
|
|
97
179
|
results.push(installResult);
|
|
98
180
|
await labelManager.onError(phase);
|
|
181
|
+
const evidence = this.buildErrorEvidence(config.preValidateCommand, installResult, DEFAULT_INSTALL_TIMEOUT_MS, undefined);
|
|
99
182
|
await stageCommentManager.updateStageComment({
|
|
100
183
|
stage,
|
|
101
184
|
status: 'error',
|
|
102
185
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
103
186
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
187
|
+
errorEvidence: evidence,
|
|
104
188
|
});
|
|
189
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
105
190
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
106
191
|
}
|
|
107
192
|
}
|
|
@@ -119,6 +204,28 @@ export class PhaseLoop {
|
|
|
119
204
|
? `${siblingBlock}\n\n${context.issueUrl}`
|
|
120
205
|
: context.issueUrl;
|
|
121
206
|
const cliPhase = phase;
|
|
207
|
+
// #814: resolve provider+model for this phase. Provider always defined
|
|
208
|
+
// (built-in fallback). Model optional (undefined = no `--model` arg).
|
|
209
|
+
const { provider: nextProvider, model: nextModel } = resolveAgentForPhase(config, context.item.workflowName, cliPhase);
|
|
210
|
+
// Drop session on provider switch (FR-011). Sessions are provider-scoped;
|
|
211
|
+
// reusing one across providers would try to resume against a session ID
|
|
212
|
+
// the new provider doesn't know.
|
|
213
|
+
if (currentProvider !== undefined && currentProvider !== nextProvider) {
|
|
214
|
+
this.logger.info({ phase: cliPhase, prevProvider: currentProvider, nextProvider }, 'Provider switch detected — dropping session for fresh start');
|
|
215
|
+
currentSessionId = undefined;
|
|
216
|
+
}
|
|
217
|
+
// Emit model-transition log line on same-provider model change (Q2→C).
|
|
218
|
+
// Only meaningful when we actually saw a prior phase with the same
|
|
219
|
+
// provider AND both models are defined (a switch from undefined→X or
|
|
220
|
+
// X→undefined is not a "transition" — either the config just started
|
|
221
|
+
// or just stopped naming a model).
|
|
222
|
+
if (currentProvider === nextProvider &&
|
|
223
|
+
currentModel !== undefined &&
|
|
224
|
+
nextModel !== undefined &&
|
|
225
|
+
currentModel !== nextModel) {
|
|
226
|
+
this.logger.info({ provider: nextProvider, prevModel: currentModel, nextModel }, 'agent.model.transition');
|
|
227
|
+
}
|
|
228
|
+
const previousModel = currentProvider === nextProvider ? currentModel : undefined;
|
|
122
229
|
result = await cliSpawner.spawnPhase(cliPhase, {
|
|
123
230
|
prompt,
|
|
124
231
|
cwd: context.checkoutPath,
|
|
@@ -127,19 +234,36 @@ export class PhaseLoop {
|
|
|
127
234
|
signal: context.signal,
|
|
128
235
|
resumeSessionId: currentSessionId,
|
|
129
236
|
siblingWorkdirs: context.siblingWorkdirs,
|
|
237
|
+
provider: nextProvider,
|
|
238
|
+
...(nextModel !== undefined ? { model: nextModel } : {}),
|
|
239
|
+
...(previousModel !== undefined ? { previousModel } : {}),
|
|
130
240
|
}, outputCapture);
|
|
241
|
+
// Update trackers post-spawn so failures don't strand state.
|
|
242
|
+
currentProvider = nextProvider;
|
|
243
|
+
currentModel = nextModel;
|
|
131
244
|
}
|
|
132
245
|
}
|
|
133
246
|
catch (error) {
|
|
134
247
|
// Unexpected error during spawning
|
|
135
248
|
this.logger.error({ phase, error: String(error) }, 'Unexpected error during phase execution');
|
|
136
249
|
await labelManager.onError(phase);
|
|
250
|
+
const syntheticResult = {
|
|
251
|
+
phase,
|
|
252
|
+
success: false,
|
|
253
|
+
exitCode: 1,
|
|
254
|
+
durationMs: 0,
|
|
255
|
+
output: [],
|
|
256
|
+
error: { message: String(error), output: '', phase },
|
|
257
|
+
};
|
|
258
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, syntheticResult, undefined, 'spawn-error');
|
|
137
259
|
await stageCommentManager.updateStageComment({
|
|
138
260
|
stage,
|
|
139
261
|
status: 'error',
|
|
140
262
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
141
263
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
264
|
+
errorEvidence: evidence,
|
|
142
265
|
});
|
|
266
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
143
267
|
throw error;
|
|
144
268
|
}
|
|
145
269
|
results.push(result);
|
|
@@ -165,6 +289,15 @@ export class PhaseLoop {
|
|
|
165
289
|
// Guard: fail if no progress made (prevents infinite loop)
|
|
166
290
|
if (lastTasksRemaining !== undefined && tasksRemaining >= lastTasksRemaining) {
|
|
167
291
|
this.logger.error({ phase, tasksRemaining, lastTasksRemaining }, 'Implement increment made no progress — failing to prevent infinite loop');
|
|
292
|
+
// FR-007: set result.error BEFORE evidence derivation so the alert
|
|
293
|
+
// and stage-comment evidence blocks have diagnostic content.
|
|
294
|
+
result.success = false;
|
|
295
|
+
result.error = {
|
|
296
|
+
message: 'Implement increment made no progress — aborting to prevent infinite loop',
|
|
297
|
+
output: `no progress: tasks_remaining stayed at ${tasksRemaining} across two increments`,
|
|
298
|
+
phase,
|
|
299
|
+
};
|
|
300
|
+
const evidence = this.buildErrorEvidence('implement (no-progress guard)', result, undefined, 'no-progress');
|
|
168
301
|
await labelManager.onError(phase);
|
|
169
302
|
await stageCommentManager.updateStageComment({
|
|
170
303
|
stage,
|
|
@@ -172,13 +305,9 @@ export class PhaseLoop {
|
|
|
172
305
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
173
306
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
174
307
|
prUrl: context.prUrl,
|
|
308
|
+
errorEvidence: evidence,
|
|
175
309
|
});
|
|
176
|
-
|
|
177
|
-
result.error = {
|
|
178
|
-
message: 'Implement increment made no progress — aborting to prevent infinite loop',
|
|
179
|
-
stderr: '',
|
|
180
|
-
phase,
|
|
181
|
-
};
|
|
310
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
182
311
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
183
312
|
}
|
|
184
313
|
lastTasksRemaining = tasksRemaining;
|
|
@@ -229,13 +358,44 @@ export class PhaseLoop {
|
|
|
229
358
|
continue;
|
|
230
359
|
}
|
|
231
360
|
}
|
|
361
|
+
// #892: bounded validate-fix cycle. Fires ONLY on the resume-driven
|
|
362
|
+
// validate re-run (structurally gated on WorkerContext.resumeReason
|
|
363
|
+
// === 'base-advance'). First-time reds continue through onError.
|
|
364
|
+
if (phase === 'validate'
|
|
365
|
+
&& context.resumeReason === 'base-advance'
|
|
366
|
+
&& deps.validateFixHandler
|
|
367
|
+
&& prManager.getPrNumber() !== undefined) {
|
|
368
|
+
try {
|
|
369
|
+
// resolveBaseBranch returns `origin/<name>`; strip prefix to
|
|
370
|
+
// match the base-branch string used in listOpenPullRequests results.
|
|
371
|
+
const baseRefFull = await resolveBaseBranch(context.github, prManager, context.checkoutPath, context.item.owner, context.item.repo, this.logger);
|
|
372
|
+
const baseBranch = baseRefFull.startsWith('origin/')
|
|
373
|
+
? baseRefFull.slice('origin/'.length)
|
|
374
|
+
: baseRefFull;
|
|
375
|
+
await deps.validateFixHandler.handle(context.item, context.checkoutPath, { prNumber: prManager.getPrNumber(), baseBranch }, {
|
|
376
|
+
stdout: result.capturedStdout ?? '',
|
|
377
|
+
// #890 renamed `error.stderr` → `error.output` (merged tail);
|
|
378
|
+
// fall back to it when the raw stderr buffer is empty.
|
|
379
|
+
stderr: result.capturedStderr ?? result.error?.output ?? '',
|
|
380
|
+
exitCode: result.exitCode,
|
|
381
|
+
}, context.github);
|
|
382
|
+
}
|
|
383
|
+
catch (err) {
|
|
384
|
+
this.logger.warn({ err: String(err), phase, issueNumber: context.item.issueNumber }, 'validate-fix handler threw — falling through to standard onError path');
|
|
385
|
+
}
|
|
386
|
+
}
|
|
232
387
|
await labelManager.onError(phase);
|
|
388
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, result, phase === 'validate'
|
|
389
|
+
? DEFAULT_VALIDATE_TIMEOUT_MS
|
|
390
|
+
: resolvePhaseTimeoutMs(config, phase), undefined);
|
|
233
391
|
await stageCommentManager.updateStageComment({
|
|
234
392
|
stage,
|
|
235
393
|
status: 'error',
|
|
236
394
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
237
395
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
396
|
+
errorEvidence: evidence,
|
|
238
397
|
});
|
|
398
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
239
399
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
240
400
|
}
|
|
241
401
|
// 5. Commit, push, and ensure draft PR exists (before marking complete)
|
|
@@ -243,42 +403,59 @@ export class PhaseLoop {
|
|
|
243
403
|
if (prUrl) {
|
|
244
404
|
context.prUrl = prUrl;
|
|
245
405
|
}
|
|
246
|
-
// 5b. Fail phases that require
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
let
|
|
406
|
+
// 5b. Fail phases that require product-code changes but produced none.
|
|
407
|
+
// Compares the branch's cumulative diff against its PR base ref (or the
|
|
408
|
+
// default branch when no PR yet) and rejects when every changed file lives
|
|
409
|
+
// under EXCLUDED_PATH_PREFIXES. See specs/820-*.
|
|
410
|
+
if (PHASES_REQUIRING_CHANGES.has(phase)) {
|
|
411
|
+
let productFiles;
|
|
412
|
+
let changedFiles;
|
|
413
|
+
let baseRef;
|
|
252
414
|
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'));
|
|
259
|
-
}
|
|
260
|
-
catch {
|
|
261
|
-
// If we can't check, fall through to the error path
|
|
262
|
-
}
|
|
263
|
-
if (hasPriorImplementation) {
|
|
264
|
-
this.logger.warn({ phase }, 'Phase produced no new changes but branch has prior implementation commits — continuing');
|
|
415
|
+
baseRef = await resolveBaseRef(context.github, prManager, context.item.owner, context.item.repo);
|
|
416
|
+
({ productFiles, changedFiles } = await computeProductDiff(context.github, baseRef));
|
|
265
417
|
}
|
|
266
|
-
|
|
267
|
-
this.logger.error({ phase }, '
|
|
418
|
+
catch (err) {
|
|
419
|
+
this.logger.error({ phase, err: String(err) }, 'product-diff computation threw — treating as detection failure');
|
|
268
420
|
await labelManager.onError(phase);
|
|
421
|
+
result.success = false;
|
|
422
|
+
result.error = {
|
|
423
|
+
message: `Phase "${phase}" product-diff detection failed: ${String(err)}`,
|
|
424
|
+
output: '',
|
|
425
|
+
phase,
|
|
426
|
+
};
|
|
427
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, result, undefined, 'product-diff-error');
|
|
269
428
|
await stageCommentManager.updateStageComment({
|
|
270
429
|
stage,
|
|
271
430
|
status: 'error',
|
|
272
431
|
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
273
432
|
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
274
433
|
prUrl: context.prUrl,
|
|
434
|
+
errorEvidence: evidence,
|
|
275
435
|
});
|
|
436
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
437
|
+
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
438
|
+
}
|
|
439
|
+
if (productFiles.length === 0) {
|
|
440
|
+
this.logger.error({ phase, baseRef, changedFiles, excluded: EXCLUDED_PATH_PREFIXES }, 'implement phase produced no product-code changes — all diff lives under excluded paths');
|
|
441
|
+
await labelManager.onError(phase);
|
|
276
442
|
result.success = false;
|
|
277
443
|
result.error = {
|
|
278
|
-
message: `Phase "${phase}"
|
|
279
|
-
|
|
444
|
+
message: `Phase "${phase}" produced no product-code changes — all changed files are under excluded prefixes ` +
|
|
445
|
+
`[${EXCLUDED_PATH_PREFIXES.join(', ')}]. Implement must modify at least one non-excluded file.`,
|
|
446
|
+
output: '',
|
|
280
447
|
phase,
|
|
281
448
|
};
|
|
449
|
+
const evidence = this.buildErrorEvidence(phase === 'validate' ? config.validateCommand : phase, result, undefined, 'no-product-code-changes');
|
|
450
|
+
await stageCommentManager.updateStageComment({
|
|
451
|
+
stage,
|
|
452
|
+
status: 'error',
|
|
453
|
+
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps, 'error'),
|
|
454
|
+
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
455
|
+
prUrl: context.prUrl,
|
|
456
|
+
errorEvidence: evidence,
|
|
457
|
+
});
|
|
458
|
+
await stageCommentManager.postFailureAlert({ stage, runId, phase, evidence });
|
|
282
459
|
return { results, completed: false, lastPhase: phase, gateHit: false };
|
|
283
460
|
}
|
|
284
461
|
}
|
|
@@ -401,6 +578,128 @@ export class PhaseLoop {
|
|
|
401
578
|
gateHit: false,
|
|
402
579
|
};
|
|
403
580
|
}
|
|
581
|
+
/**
|
|
582
|
+
* Run the pre-implement base-merge (#864, committed). On conflict, pause the
|
|
583
|
+
* workflow via `waiting-for:merge-conflicts` and return the pause result;
|
|
584
|
+
* on clean merge, return `undefined` so the caller proceeds with phase execution.
|
|
585
|
+
*/
|
|
586
|
+
async runPreImplementBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps) {
|
|
587
|
+
return this.runPrePhaseBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps, { commit: true });
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* Run the pre-validate/validate base-merge (#864, ephemeral). Symmetric with
|
|
591
|
+
* `runPreImplementBaseMerge` but `opts.commit === false` — the merge is left
|
|
592
|
+
* as an un-committed merge in the workspace and MUST be discarded by the next
|
|
593
|
+
* phase's reset-at-start (FR-006).
|
|
594
|
+
*/
|
|
595
|
+
async runPreValidateBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps) {
|
|
596
|
+
return this.runPrePhaseBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps, { commit: false });
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Shared pre-phase base-merge implementation. Resolves the base ref, invokes
|
|
600
|
+
* the runner, and (on conflict) pauses with `waiting-for:merge-conflicts` +
|
|
601
|
+
* `errorEvidence.mergeConflict`. Reuses the existing gate-return path so
|
|
602
|
+
* #849's paired resume-dedupe clear applies symmetrically.
|
|
603
|
+
*/
|
|
604
|
+
async runPrePhaseBaseMerge(context, deps, baseMergeRunner, phase, stage, sequence, startIndex, i, phaseTimestamps, opts) {
|
|
605
|
+
if (!context.branch) {
|
|
606
|
+
this.logger.warn({ phase }, 'Skipping pre-phase base-merge — WorkerContext.branch not set');
|
|
607
|
+
return undefined;
|
|
608
|
+
}
|
|
609
|
+
const baseRef = await resolveBaseBranch(context.github, deps.prManager, context.checkoutPath, context.item.owner, context.item.repo, this.logger);
|
|
610
|
+
const mergeResult = await baseMergeRunner(context.checkoutPath, context.branch, baseRef, opts, this.logger);
|
|
611
|
+
if (mergeResult.ok) {
|
|
612
|
+
this.logger.info({ phase, baseRef, commit: opts.commit, mergeSha: mergeResult.mergeSha }, 'Pre-phase base-merge succeeded');
|
|
613
|
+
return undefined;
|
|
614
|
+
}
|
|
615
|
+
// Conflict: pause with merge-conflict gate.
|
|
616
|
+
const gateLabel = 'waiting-for:merge-conflicts';
|
|
617
|
+
this.logger.warn({ phase, baseRef, conflictedPaths: mergeResult.conflictedPaths }, 'Pre-phase base-merge conflict — pausing workflow');
|
|
618
|
+
deps.jobEventEmitter?.('job:paused', {
|
|
619
|
+
jobId: context.jobId,
|
|
620
|
+
workflowName: context.item.workflowName,
|
|
621
|
+
owner: context.item.owner,
|
|
622
|
+
repo: context.item.repo,
|
|
623
|
+
issueNumber: context.item.issueNumber,
|
|
624
|
+
status: 'paused',
|
|
625
|
+
currentStep: phase,
|
|
626
|
+
gateLabel,
|
|
627
|
+
});
|
|
628
|
+
// #898 FR-011/FR-012: substitute the manual-remedy template with the
|
|
629
|
+
// concrete branch / bare base / issue-ref for this pause. Keeps the
|
|
630
|
+
// renderer content-agnostic — it just prints the strings as given.
|
|
631
|
+
const bareBase = mergeResult.baseRef.replace(/^origin\//, '');
|
|
632
|
+
const branchName = context.branch ?? '<branch>';
|
|
633
|
+
const issueRef = `${context.item.owner}/${context.item.repo}#${context.item.issueNumber}`;
|
|
634
|
+
const substitutedSteps = MERGE_CONFLICT_REMEDY.steps.map((step) => step
|
|
635
|
+
.replace(/<branch>/g, branchName)
|
|
636
|
+
.replace(/<base>/g, bareBase)
|
|
637
|
+
.replace(/<issue-ref>/g, issueRef));
|
|
638
|
+
await deps.stageCommentManager.updateStageComment({
|
|
639
|
+
stage,
|
|
640
|
+
status: 'in_progress',
|
|
641
|
+
phases: this.buildPhaseProgress(sequence, startIndex, i, phaseTimestamps),
|
|
642
|
+
startedAt: phaseTimestamps.get(sequence[startIndex])?.startedAt ?? new Date().toISOString(),
|
|
643
|
+
prUrl: context.prUrl,
|
|
644
|
+
errorEvidence: {
|
|
645
|
+
mergeConflict: {
|
|
646
|
+
baseRef: mergeResult.baseRef,
|
|
647
|
+
conflictedPaths: mergeResult.conflictedPaths,
|
|
648
|
+
manualRemedy: {
|
|
649
|
+
steps: substitutedSteps,
|
|
650
|
+
warning: MERGE_CONFLICT_REMEDY.warning,
|
|
651
|
+
},
|
|
652
|
+
},
|
|
653
|
+
},
|
|
654
|
+
});
|
|
655
|
+
// #902 FR-003: persist pause-context BEFORE applying the pause label.
|
|
656
|
+
// The worker's MergeConflictHandler dispatch reads this to populate
|
|
657
|
+
// `metadata.phase` — the single source of truth for the interrupted phase.
|
|
658
|
+
// If the write throws, we do NOT apply the pause label — the pause simply
|
|
659
|
+
// doesn't materialize, preventing the dead-park class.
|
|
660
|
+
const workflowId = `${context.item.owner}/${context.item.repo}#${context.item.issueNumber}`;
|
|
661
|
+
await writePauseContext(context.checkoutPath, workflowId, {
|
|
662
|
+
phase,
|
|
663
|
+
writtenAt: new Date().toISOString(),
|
|
664
|
+
issueRef: workflowId,
|
|
665
|
+
});
|
|
666
|
+
await deps.labelManager.onGateHit(phase, gateLabel);
|
|
667
|
+
return {
|
|
668
|
+
results: [],
|
|
669
|
+
completed: false,
|
|
670
|
+
lastPhase: phase,
|
|
671
|
+
gateHit: true,
|
|
672
|
+
};
|
|
673
|
+
}
|
|
674
|
+
/**
|
|
675
|
+
* Build the `errorEvidence` payload rendered inside the stage comment on
|
|
676
|
+
* `status: 'error'` transitions. See specs/847-found-during-cockpit-v1/
|
|
677
|
+
* contracts/failure-evidence-block.md for the derivation rules.
|
|
678
|
+
*/
|
|
679
|
+
buildErrorEvidence(command, result, resolvedTimeoutMs, classifier) {
|
|
680
|
+
const message = result.error?.message ?? '';
|
|
681
|
+
const exitDescriptor = classifier
|
|
682
|
+
? `failed post-exit: ${classifier} (process exit ${result.exitCode})`
|
|
683
|
+
: message.includes('timed out') && resolvedTimeoutMs !== undefined
|
|
684
|
+
? `killed (SIGTERM) after ${resolvedTimeoutMs}ms`
|
|
685
|
+
: message.includes('was aborted')
|
|
686
|
+
? 'aborted'
|
|
687
|
+
: `exit ${result.exitCode}`;
|
|
688
|
+
// Shell path: `error.output` is the ring-buffer tail (already merged).
|
|
689
|
+
// CLI path: `error.output` is empty; synthesize from parsed `type: 'text'` chunks.
|
|
690
|
+
// For synthetic PhaseResults (no-progress guard, product-diff failures, catch
|
|
691
|
+
// block): `error.output` is set directly by the caller (still merged-shape).
|
|
692
|
+
const rawOutput = result.error?.output ?? '';
|
|
693
|
+
const outputTail = rawOutput.length > 0
|
|
694
|
+
? boundOutputTail(rawOutput)
|
|
695
|
+
: synthesizeOutputTail(result.output);
|
|
696
|
+
return {
|
|
697
|
+
command,
|
|
698
|
+
exitDescriptor,
|
|
699
|
+
outputTail,
|
|
700
|
+
...(classifier ? { reason: message } : {}),
|
|
701
|
+
};
|
|
702
|
+
}
|
|
404
703
|
/**
|
|
405
704
|
* Build a phase progress array for stage comment updates.
|
|
406
705
|
*
|
|
@@ -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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"}
|