pipeline-worker 0.1.21 → 0.1.23
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/agent/claude.js +87 -65
- package/dist/agent/claude.js.map +1 -1
- package/dist/agent/copilot.js +19 -14
- package/dist/agent/copilot.js.map +1 -1
- package/dist/cli.js +45 -39
- package/dist/cli.js.map +1 -1
- package/dist/config/detectChecks.js +30 -15
- package/dist/config/detectChecks.js.map +1 -1
- package/dist/config/loader.js +30 -15
- package/dist/config/loader.js.map +1 -1
- package/dist/forge/github.d.ts +0 -7
- package/dist/forge/github.js +13 -19
- package/dist/forge/github.js.map +1 -1
- package/dist/forge/gitlab.d.ts +0 -6
- package/dist/forge/gitlab.js +8 -17
- package/dist/forge/gitlab.js.map +1 -1
- package/dist/forge/shared.d.ts +9 -0
- package/dist/forge/shared.js +27 -0
- package/dist/forge/shared.js.map +1 -0
- package/dist/git/commit.d.ts +0 -1
- package/dist/git/commit.js +0 -4
- package/dist/git/commit.js.map +1 -1
- package/dist/git/resolveProjectPath.d.ts +0 -6
- package/dist/git/resolveProjectPath.js +1 -1
- package/dist/git/resolveProjectPath.js.map +1 -1
- package/dist/git/worktree.d.ts +0 -7
- package/dist/git/worktree.js +42 -25
- package/dist/git/worktree.js.map +1 -1
- package/dist/mcp/server.js +8 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/process/signalCleanup.d.ts +15 -0
- package/dist/process/signalCleanup.js +19 -0
- package/dist/process/signalCleanup.js.map +1 -0
- package/dist/state/lock.d.ts +0 -6
- package/dist/state/lock.js +36 -21
- package/dist/state/lock.js.map +1 -1
- package/dist/state/runState.js +1 -0
- package/dist/state/runState.js.map +1 -1
- package/dist/toon/envelope.js +30 -17
- package/dist/toon/envelope.js.map +1 -1
- package/dist/ui/sessions.js +26 -8
- package/dist/ui/sessions.js.map +1 -1
- package/dist/ui/steps.d.ts +8 -11
- package/dist/ui/steps.js +24 -2
- package/dist/ui/steps.js.map +1 -1
- package/dist/version/autoUpdate.js +23 -15
- package/dist/version/autoUpdate.js.map +1 -1
- package/dist/workflow/orchestrate.js +130 -96
- package/dist/workflow/orchestrate.js.map +1 -1
- package/dist/workflow/runChecks.js +2 -0
- package/dist/workflow/runChecks.js.map +1 -1
- package/dist/workflow/updateChangelog.js +43 -28
- package/dist/workflow/updateChangelog.js.map +1 -1
- package/dist/workflow/watchPipeline.d.ts +0 -19
- package/dist/workflow/watchPipeline.js +115 -87
- package/dist/workflow/watchPipeline.js.map +1 -1
- package/package.json +1 -1
|
@@ -13,7 +13,8 @@ import { openMergeRequest } from './openMergeRequest.js';
|
|
|
13
13
|
import { watchPipeline } from './watchPipeline.js';
|
|
14
14
|
import { recordEvent } from '../state/runState.js';
|
|
15
15
|
import { acquireLock } from '../state/lock.js';
|
|
16
|
-
import {
|
|
16
|
+
import { makeIdempotentCleanup, registerExitSignals } from '../process/signalCleanup.js';
|
|
17
|
+
import { step, runStep, skipStep, note, noteRisk, reportAgentInvocation } from '../ui/steps.js';
|
|
17
18
|
import { printWelcome } from '../ui/welcome.js';
|
|
18
19
|
/** Function-boundary read so TS reports the declared RunPhase union, not a narrowed literal. */
|
|
19
20
|
function readPhase(state) {
|
|
@@ -45,9 +46,7 @@ function buildApplyConflictPrompt(conflictedFiles) {
|
|
|
45
46
|
*/
|
|
46
47
|
async function resolveApplyConflicts(agent, worktreePath, conflictedFiles) {
|
|
47
48
|
const agentResult = await runStep('4.1', '🔧', 'Resolving conflicts', `asking the agent to resolve ${conflictedFiles.length} conflicted file(s)`, () => agent.invoke({ prompt: buildApplyConflictPrompt(conflictedFiles), cwd: worktreePath, permissionMode: 'acceptEdits' }));
|
|
48
|
-
|
|
49
|
-
note(`agent: ${agentResponse.slice(0, 300).trim()}${agentResponse.length > 300 ? '…' : ''}`);
|
|
50
|
-
noteSession(agentResult, worktreePath);
|
|
49
|
+
reportAgentInvocation(agentResult, worktreePath);
|
|
51
50
|
const stillConflicted = findUnresolvedConflictMarkers(worktreePath, conflictedFiles);
|
|
52
51
|
if (stillConflicted.length > 0) {
|
|
53
52
|
throw new Error(`pipeline-worker: could not automatically resolve conflicts applying your diff — ${stillConflicted.join(', ')} ` +
|
|
@@ -55,6 +54,115 @@ async function resolveApplyConflicts(agent, worktreePath, conflictedFiles) {
|
|
|
55
54
|
}
|
|
56
55
|
await stageAll(worktreePath);
|
|
57
56
|
}
|
|
57
|
+
/** Stage 1: capture the uncommitted diff, or null (already logged) when there's nothing to process. */
|
|
58
|
+
async function captureRunDiff(repoRoot) {
|
|
59
|
+
const { diffText, changedFiles, untrackedFiles } = await runStep(1, '📸', 'Capturing your changes', 'reading uncommitted edits and untracked files from your repo', () => captureDiff(repoRoot));
|
|
60
|
+
if (diffText.trim().length === 0 && untrackedFiles.length === 0) {
|
|
61
|
+
console.log('pipeline-worker: no changes to process.');
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
note(`${untrackedFiles.length} new file(s), ${diffText.split('\n').length} line(s) of diff`);
|
|
65
|
+
return { diffText, changedFiles, untrackedFiles };
|
|
66
|
+
}
|
|
67
|
+
/** Stages 3-4: sync the worktree with origin, replay the captured diff, and resolve any resulting conflicts. */
|
|
68
|
+
async function applyCapturedDiff(agent, repoRoot, worktreePath, targetBranch, diffText, untrackedFiles) {
|
|
69
|
+
await runStep(3, '🔄', 'Syncing worktree with origin', `pull --rebase origin ${targetBranch}, so the diff lands on the latest base`, () => syncWithOrigin(worktreePath, targetBranch));
|
|
70
|
+
const applyResult = await runStep(4, '📦', 'Applying your changes', 'replay your diff and untracked files into the new worktree', () => applyDiffToWorktree(worktreePath, diffText, untrackedFiles, repoRoot));
|
|
71
|
+
if (applyResult.conflicted) {
|
|
72
|
+
note(`conflict in: ${applyResult.conflictedFiles.join(', ')}`);
|
|
73
|
+
await resolveApplyConflicts(agent, worktreePath, applyResult.conflictedFiles);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Stages 5-6: ask the agent to infer intent from the change, then rename the worktree to the resulting feature branch. */
|
|
77
|
+
async function captureIntentAndBranch(agent, config, options, worktreePath, changedFiles, untrackedFiles) {
|
|
78
|
+
const intent = await runStep(5, '🧠', 'Understanding your changes', `ask ${config.agent} to infer a change type, branch slug, commit message, and summary`, () => captureIntent(agent, [...changedFiles, ...untrackedFiles], worktreePath, config.intentModel));
|
|
79
|
+
note(`${config.agent} says: ${intent.summary}`);
|
|
80
|
+
noteRisk(intent.risk, intent.riskReason);
|
|
81
|
+
const branchName = buildBranchName(config.branchPattern, { type: intent.changeType, ticket: options.ticket, name: intent.branchSlug });
|
|
82
|
+
const actualBranchName = await runStep(6, '🌿', 'Checkout feature branch', `switch to feature branch ${branchName}`, () => renameBranch(worktreePath, branchName));
|
|
83
|
+
if (actualBranchName !== branchName) {
|
|
84
|
+
note(`"${branchName}" already exists locally — using "${actualBranchName}" instead`);
|
|
85
|
+
}
|
|
86
|
+
return { intent, actualBranchName };
|
|
87
|
+
}
|
|
88
|
+
/** Stage 7: run build/lint/test, reporting and recording the outcome. Returns null (already logged/recorded, exitCode set) when a check failed. */
|
|
89
|
+
async function runAndReportChecks(config, worktreePath, state, repoRoot) {
|
|
90
|
+
const checks = await runStep(7, '✅', 'Running checks', 'build, lint, and test — whichever your repo has configured', () => runChecks(config, worktreePath));
|
|
91
|
+
for (const check of checks)
|
|
92
|
+
note(`${check.name}: ${check.ok ? 'passed' : 'failed'} (${(check.durationMs / 1000).toFixed(1)}s)`);
|
|
93
|
+
const failedCheck = checks.find((c) => !c.ok);
|
|
94
|
+
if (failedCheck) {
|
|
95
|
+
console.error(`pipeline-worker: ${failedCheck.name} failed, aborting before opening a merge request.\n${failedCheck.stderr}`);
|
|
96
|
+
recordEvent(repoRoot, state, `${failedCheck.name} check failed, aborted before opening a merge request`, 'error');
|
|
97
|
+
process.exitCode = 1;
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
state.phase = 'checks';
|
|
101
|
+
recordEvent(repoRoot, state, `Checks passed (${checks.map((c) => c.name).join(', ')})`);
|
|
102
|
+
return checks;
|
|
103
|
+
}
|
|
104
|
+
/** Stage 8 (optional): add a changelog bullet for this change, or announce the skip when disabled. */
|
|
105
|
+
async function maybeUpdateChangelog(config, worktreePath, intent) {
|
|
106
|
+
if (config.updateChangelog) {
|
|
107
|
+
await runStep(8, '📝', 'Updating changelog', "add a bullet under CHANGELOG.md's [Unreleased] section", async () => {
|
|
108
|
+
updateChangelog(worktreePath, intent);
|
|
109
|
+
await stageAll(worktreePath);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
skipStep(8, '📝', 'Updating changelog', 'config.updateChangelog is disabled');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/** Stage 9 + opening the MR/PR: commit everything staged so far, then open the merge request and record it on state. */
|
|
117
|
+
async function commitAndOpenMr(forge, worktreePath, state, targetBranch, intent, config, checks, repoRoot) {
|
|
118
|
+
await runStep(9, '💾', 'Committing changes', `commit message: "${intent.commitMessage}"`,
|
|
119
|
+
// applyDiffToWorktree (and, if enabled, the changelog step above) left
|
|
120
|
+
// everything staged; without this commit the push would carry no
|
|
121
|
+
// changes and the MR would be empty.
|
|
122
|
+
() => commit(worktreePath, intent.commitMessage));
|
|
123
|
+
const mr = await openMergeRequest(forge, worktreePath, state.branch, targetBranch, intent, config.agent, checks);
|
|
124
|
+
state.mrIid = mr.iid;
|
|
125
|
+
state.phase = 'mr';
|
|
126
|
+
recordEvent(repoRoot, state, `Opened MR/PR ${mr.webUrl}`);
|
|
127
|
+
return mr;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Stage 13, run early: once the MR/PR is open, repoRoot's copy is redundant
|
|
131
|
+
* even though CI hasn't run yet, so free it (and the run lock) for a new
|
|
132
|
+
* `pipeline-worker run` immediately, rather than making the caller wait out
|
|
133
|
+
* this run's CI-watch/fix loop. releaseLock is safe to call again from the
|
|
134
|
+
* outer `finally` once this run itself finishes.
|
|
135
|
+
*/
|
|
136
|
+
async function maybeCleanupEarly(config, repoRoot, untrackedFiles, branch, releaseLock) {
|
|
137
|
+
if (config.cleanupOnSuccess && config.cleanupEarly) {
|
|
138
|
+
await runStep(13, '🧹', 'Cleaning up your repo', `reset to HEAD — your changes are now safely pushed to ${branch} (MR open)`, () => resetRepo(repoRoot, untrackedFiles));
|
|
139
|
+
releaseLock();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** After watchPipeline settles: report the final outcome and run stage 13's cleanup if it hasn't already run early. */
|
|
143
|
+
// fallow-ignore-next-line complexity
|
|
144
|
+
async function finalizeRun(finalPhase, config, mr, state, repoRoot, untrackedFiles) {
|
|
145
|
+
if (finalPhase === 'done') {
|
|
146
|
+
const detail = state.pipelineId !== undefined ? `MR ${mr.webUrl} passed CI` : `MR ${mr.webUrl} opened — no CI pipeline found, nothing to watch`;
|
|
147
|
+
step('🎉', 'Done', detail);
|
|
148
|
+
if (config.cleanupOnSuccess) {
|
|
149
|
+
// Only run stage 13 here when it hasn't already run early, above —
|
|
150
|
+
// no skip announcement needed in that case, since it did run, just
|
|
151
|
+
// sooner than usual, not never.
|
|
152
|
+
if (!config.cleanupEarly) {
|
|
153
|
+
await runStep(13, '🧹', 'Cleaning up your repo', `reset to HEAD — your changes are now safely on ${state.branch}`, () => resetRepo(repoRoot, untrackedFiles));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
skipStep(13, '🧹', 'Cleaning up your repo', 'config.cleanupOnSuccess is disabled — leaving your changes on the local repo for you to inspect');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else if (finalPhase === 'escalated') {
|
|
161
|
+
step('🚨', 'Stopped for human review', `see ${mr.webUrl} for what was tried and why`);
|
|
162
|
+
process.exitCode = 1;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// fallow-ignore-next-line complexity
|
|
58
166
|
export async function runWorkflow(repoRoot, options = {}) {
|
|
59
167
|
const config = loadConfig(repoRoot);
|
|
60
168
|
if (config.forge === 'gitlab' && !options.ticket) {
|
|
@@ -68,25 +176,17 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
68
176
|
const forge = createForge(config);
|
|
69
177
|
const agent = selectAgent(config);
|
|
70
178
|
await printWelcome(config, repoRoot);
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
73
|
-
console.log('pipeline-worker: no changes to process.');
|
|
179
|
+
const diff = await captureRunDiff(repoRoot);
|
|
180
|
+
if (!diff)
|
|
74
181
|
return;
|
|
75
|
-
}
|
|
76
|
-
note(`${untrackedFiles.length} new file(s), ${diffText.split('\n').length} line(s) of diff`);
|
|
182
|
+
const { diffText, changedFiles, untrackedFiles } = diff;
|
|
77
183
|
const targetBranch = await currentBranch(repoRoot);
|
|
78
184
|
const tempBranch = generateTempBranchName();
|
|
79
185
|
const worktreePath = await runStep(2, '🌳', 'Creating worktree', `create worktree with name ${tempBranch}`, () => createWorktree(repoRoot, tempBranch));
|
|
80
186
|
let state = { branch: tempBranch, targetBranch, worktreePath, attempt: 0, phase: 'diff' };
|
|
81
187
|
recordEvent(repoRoot, state, `Created worktree at ${worktreePath} (temp branch ${tempBranch})`);
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
if (cleanedUp)
|
|
85
|
-
return;
|
|
86
|
-
cleanedUp = true;
|
|
87
|
-
await removeWorktree(repoRoot, worktreePath);
|
|
88
|
-
};
|
|
89
|
-
const onSignal = (exitCode) => {
|
|
188
|
+
const { cleanup, markDone } = makeIdempotentCleanup(() => removeWorktree(repoRoot, worktreePath));
|
|
189
|
+
registerExitSignals((exitCode) => {
|
|
90
190
|
// process.exit() below terminates immediately without unwinding the
|
|
91
191
|
// suspended runWorkflow() call stack, so the outer `finally { releaseLock() }`
|
|
92
192
|
// never runs — release it explicitly here first in both branches.
|
|
@@ -94,7 +194,7 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
94
194
|
// MR is already open — leave the worktree so `pipeline-worker resume`
|
|
95
195
|
// can keep pushing CI-fix/conflict-resolution commits to it instead
|
|
96
196
|
// of finding a dead path.
|
|
97
|
-
|
|
197
|
+
markDone();
|
|
98
198
|
releaseLock();
|
|
99
199
|
process.exit(exitCode);
|
|
100
200
|
return;
|
|
@@ -103,93 +203,27 @@ export async function runWorkflow(repoRoot, options = {}) {
|
|
|
103
203
|
releaseLock();
|
|
104
204
|
process.exit(exitCode);
|
|
105
205
|
});
|
|
106
|
-
};
|
|
107
|
-
process.once('SIGINT', () => onSignal(130));
|
|
108
|
-
process.once('SIGTERM', () => onSignal(143));
|
|
206
|
+
});
|
|
109
207
|
try {
|
|
110
|
-
await
|
|
111
|
-
const
|
|
112
|
-
if (applyResult.conflicted) {
|
|
113
|
-
note(`conflict in: ${applyResult.conflictedFiles.join(', ')}`);
|
|
114
|
-
await resolveApplyConflicts(agent, worktreePath, applyResult.conflictedFiles);
|
|
115
|
-
}
|
|
116
|
-
const intent = await runStep(5, '🧠', 'Understanding your changes', `ask ${config.agent} to infer a change type, branch slug, commit message, and summary`, () => captureIntent(agent, [...changedFiles, ...untrackedFiles], worktreePath, config.intentModel));
|
|
117
|
-
note(`${config.agent} says: ${intent.summary}`);
|
|
118
|
-
noteRisk(intent.risk, intent.riskReason);
|
|
119
|
-
const branchName = buildBranchName(config.branchPattern, { type: intent.changeType, ticket: options.ticket, name: intent.branchSlug });
|
|
120
|
-
const actualBranchName = await runStep(6, '🌿', 'Checkout feature branch', `switch to feature branch ${branchName}`, () => renameBranch(worktreePath, branchName));
|
|
121
|
-
if (actualBranchName !== branchName) {
|
|
122
|
-
note(`"${branchName}" already exists locally — using "${actualBranchName}" instead`);
|
|
123
|
-
}
|
|
208
|
+
await applyCapturedDiff(agent, repoRoot, worktreePath, targetBranch, diffText, untrackedFiles);
|
|
209
|
+
const { intent, actualBranchName } = await captureIntentAndBranch(agent, config, options, worktreePath, changedFiles, untrackedFiles);
|
|
124
210
|
state = { ...state, branch: actualBranchName, phase: 'intent' };
|
|
125
211
|
recordEvent(repoRoot, state, `Captured intent; renamed to feature branch ${actualBranchName}`);
|
|
126
|
-
const checks = await
|
|
127
|
-
|
|
128
|
-
note(`${check.name}: ${check.ok ? 'passed' : 'failed'} (${(check.durationMs / 1000).toFixed(1)}s)`);
|
|
129
|
-
const failedCheck = checks.find((c) => !c.ok);
|
|
130
|
-
if (failedCheck) {
|
|
131
|
-
console.error(`pipeline-worker: ${failedCheck.name} failed, aborting before opening a merge request.\n${failedCheck.stderr}`);
|
|
132
|
-
recordEvent(repoRoot, state, `${failedCheck.name} check failed, aborted before opening a merge request`, 'error');
|
|
133
|
-
process.exitCode = 1;
|
|
212
|
+
const checks = await runAndReportChecks(config, worktreePath, state, repoRoot);
|
|
213
|
+
if (!checks)
|
|
134
214
|
return;
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
await stageAll(worktreePath);
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
skipStep(8, '📝', 'Updating changelog', 'config.updateChangelog is disabled');
|
|
146
|
-
}
|
|
147
|
-
await runStep(9, '💾', 'Committing changes', `commit message: "${intent.commitMessage}"`,
|
|
148
|
-
// applyDiffToWorktree (and, if enabled, the changelog step above) left
|
|
149
|
-
// everything staged; without this commit the push would carry no
|
|
150
|
-
// changes and the MR would be empty.
|
|
151
|
-
() => commit(worktreePath, intent.commitMessage));
|
|
152
|
-
const mr = await openMergeRequest(forge, worktreePath, state.branch, targetBranch, intent, config.agent, checks);
|
|
153
|
-
state.mrIid = mr.iid;
|
|
154
|
-
state.phase = 'mr';
|
|
155
|
-
recordEvent(repoRoot, state, `Opened MR/PR ${mr.webUrl}`);
|
|
156
|
-
if (config.cleanupOnSuccess && config.cleanupEarly) {
|
|
157
|
-
// The diff is now durably committed and pushed to state.branch with an
|
|
158
|
-
// MR/PR open — repoRoot's copy is redundant even though CI hasn't run
|
|
159
|
-
// yet, so free it (and the run lock) for a new `pipeline-worker run`
|
|
160
|
-
// immediately, rather than making the caller wait out this run's
|
|
161
|
-
// CI-watch/fix loop below. releaseLock is safe to call again from the
|
|
162
|
-
// outer `finally` once this run itself finishes. This runs before
|
|
163
|
-
// stage 12 (watching the pipeline) even though it's numbered 13 —
|
|
164
|
-
// it's the same stage 13 that would otherwise run after stage 12
|
|
165
|
-
// finishes, just moved earlier by config.cleanupEarly.
|
|
166
|
-
await runStep(13, '🧹', 'Cleaning up your repo', `reset to HEAD — your changes are now safely pushed to ${state.branch} (MR open)`, () => resetRepo(repoRoot, untrackedFiles));
|
|
167
|
-
releaseLock();
|
|
168
|
-
}
|
|
215
|
+
await maybeUpdateChangelog(config, worktreePath, intent);
|
|
216
|
+
const mr = await commitAndOpenMr(forge, worktreePath, state, targetBranch, intent, config, checks, repoRoot);
|
|
217
|
+
// This runs before stage 12 (watching the pipeline) even though it's
|
|
218
|
+
// numbered 13 — it's the same stage 13 that would otherwise run after
|
|
219
|
+
// stage 12 finishes, just moved earlier by config.cleanupEarly.
|
|
220
|
+
await maybeCleanupEarly(config, repoRoot, untrackedFiles, state.branch, releaseLock);
|
|
169
221
|
await watchPipeline(forge, config, agent, worktreePath, state.branch, targetBranch, mr.iid, state, repoRoot);
|
|
170
222
|
// watchPipeline mutates state.phase in place; go through a function
|
|
171
223
|
// boundary so TS uses the declared RunPhase return type instead of the
|
|
172
224
|
// 'mr' literal it narrowed state.phase to just before the call.
|
|
173
225
|
const finalPhase = readPhase(state);
|
|
174
|
-
|
|
175
|
-
const detail = state.pipelineId !== undefined ? `MR ${mr.webUrl} passed CI` : `MR ${mr.webUrl} opened — no CI pipeline found, nothing to watch`;
|
|
176
|
-
step('🎉', 'Done', detail);
|
|
177
|
-
if (config.cleanupOnSuccess) {
|
|
178
|
-
// Only run stage 13 here when it hasn't already run early, above —
|
|
179
|
-
// no skip announcement needed in that case, since it did run, just
|
|
180
|
-
// sooner than usual, not never.
|
|
181
|
-
if (!config.cleanupEarly) {
|
|
182
|
-
await runStep(13, '🧹', 'Cleaning up your repo', `reset to HEAD — your changes are now safely on ${state.branch}`, () => resetRepo(repoRoot, untrackedFiles));
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
skipStep(13, '🧹', 'Cleaning up your repo', 'config.cleanupOnSuccess is disabled — leaving your changes on the local repo for you to inspect');
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
else if (finalPhase === 'escalated') {
|
|
190
|
-
step('🚨', 'Stopped for human review', `see ${mr.webUrl} for what was tried and why`);
|
|
191
|
-
process.exitCode = 1;
|
|
192
|
-
}
|
|
226
|
+
await finalizeRun(finalPhase, config, mr, state, repoRoot, untrackedFiles);
|
|
193
227
|
}
|
|
194
228
|
catch (error) {
|
|
195
229
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/workflow/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrate.js","sourceRoot":"","sources":["../../src/workflow/orchestrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ export function parseCommand(command) {
|
|
|
27
27
|
}
|
|
28
28
|
return tokens;
|
|
29
29
|
}
|
|
30
|
+
// fallow-ignore-next-line complexity
|
|
30
31
|
async function runStage(name, command, cwd) {
|
|
31
32
|
const start = Date.now();
|
|
32
33
|
const opts = { cwd, maxBuffer: 64 * 1024 * 1024 };
|
|
@@ -59,6 +60,7 @@ async function runStage(name, command, cwd) {
|
|
|
59
60
|
* lint/test are skipped when config.runLintAndTest is false — e.g. when an
|
|
60
61
|
* earlier workflow such as upstream CI already verified them.
|
|
61
62
|
*/
|
|
63
|
+
// fallow-ignore-next-line complexity
|
|
62
64
|
export async function runChecks(config, worktreePath) {
|
|
63
65
|
const stages = [
|
|
64
66
|
{ name: 'build', command: config.build },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../src/workflow/runChecks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../src/workflow/runChecks.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC;;;;GAIG;AACH,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,YAAY,GAAG,4BAA4B,CAAC;IAClD,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qCAAqC;AACrC,KAAK,UAAU,QAAQ,CAAC,IAAyB,EAAE,OAAe,EAAE,GAAW;IAC7E,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC;QACH,IAAI,MAAc,CAAC;QACnB,IAAI,MAAc,CAAC;QACnB,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,mFAAmF;YACnF,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAC5E,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAA+D,CAAC;QAC5E,OAAO;YACL,IAAI;YACJ,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;YAClD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC/B,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAA4B,EAAE,YAAoB;IAChF,MAAM,MAAM,GAA0D;QACpE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE;QACxC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QACnE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;KACpE,CAAC;IAEF,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,SAAS,CAAC,+DAA+D;QACpG,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM;IACxB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -12,35 +12,32 @@ const NEW_CHANGELOG_HEADER = '# Changelog\n\n' +
|
|
|
12
12
|
'All notable changes to this project are documented here. The format is based on ' +
|
|
13
13
|
'[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to ' +
|
|
14
14
|
'[Semantic Versioning](https://semver.org/).\n';
|
|
15
|
-
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const unreleasedIdx = lines.findIndex((l) => /^##\s*\[Unreleased\]/i.test(l));
|
|
27
|
-
if (unreleasedIdx === -1) {
|
|
28
|
-
const firstH2Idx = lines.findIndex((l) => /^##\s/.test(l));
|
|
29
|
-
const section = ['## [Unreleased]', '', `### ${category}`, '', `- ${entry}`, ''];
|
|
30
|
-
if (firstH2Idx === -1) {
|
|
31
|
-
const needsBlankLine = lines.length > 0 && lines[lines.length - 1].trim() !== '';
|
|
32
|
-
return [...lines, ...(needsBlankLine ? [''] : []), ...section].join('\n');
|
|
33
|
-
}
|
|
34
|
-
lines.splice(firstH2Idx, 0, ...section);
|
|
35
|
-
return lines.join('\n');
|
|
15
|
+
/** Builds the whole `## [Unreleased]` section from scratch, for when the changelog doesn't have one yet. */
|
|
16
|
+
function buildNewUnreleasedSection(category, entry) {
|
|
17
|
+
return ['## [Unreleased]', '', `### ${category}`, '', `- ${entry}`, ''];
|
|
18
|
+
}
|
|
19
|
+
/** Handles the case where `## [Unreleased]` doesn't exist at all: append it at EOF, or splice it in before the first existing `## ` heading. */
|
|
20
|
+
function insertMissingUnreleasedSection(lines, category, entry) {
|
|
21
|
+
const firstH2Idx = lines.findIndex((l) => /^##\s/.test(l));
|
|
22
|
+
const section = buildNewUnreleasedSection(category, entry);
|
|
23
|
+
if (firstH2Idx === -1) {
|
|
24
|
+
const needsBlankLine = lines.length > 0 && lines[lines.length - 1].trim() !== '';
|
|
25
|
+
return [...lines, ...(needsBlankLine ? [''] : []), ...section];
|
|
36
26
|
}
|
|
37
|
-
|
|
27
|
+
lines.splice(firstH2Idx, 0, ...section);
|
|
28
|
+
return lines;
|
|
29
|
+
}
|
|
30
|
+
/** Finds where the `## [Unreleased]` section ends: the next `## ` heading, or end of file. */
|
|
31
|
+
function findUnreleasedSectionEnd(lines, unreleasedIdx) {
|
|
38
32
|
for (let i = unreleasedIdx + 1; i < lines.length; i++) {
|
|
39
|
-
if (/^##\s/.test(lines[i]))
|
|
40
|
-
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
33
|
+
if (/^##\s/.test(lines[i]))
|
|
34
|
+
return i;
|
|
43
35
|
}
|
|
36
|
+
return lines.length;
|
|
37
|
+
}
|
|
38
|
+
/** Inserts `- entry` under `### category` within the `[Unreleased]` section, creating the category heading if it's missing. */
|
|
39
|
+
// fallow-ignore-next-line complexity
|
|
40
|
+
function insertUnderCategory(lines, unreleasedIdx, sectionEnd, category, entry) {
|
|
44
41
|
const categoryHeading = `### ${category}`;
|
|
45
42
|
const categoryIdx = lines.findIndex((l, i) => i > unreleasedIdx && i < sectionEnd && l.trim() === categoryHeading);
|
|
46
43
|
if (categoryIdx === -1) {
|
|
@@ -48,13 +45,31 @@ export function insertChangelogEntry(content, category, entry) {
|
|
|
48
45
|
while (insertAt < sectionEnd && lines[insertAt].trim() === '')
|
|
49
46
|
insertAt++;
|
|
50
47
|
lines.splice(insertAt, 0, categoryHeading, '', `- ${entry}`, '');
|
|
51
|
-
return lines
|
|
48
|
+
return lines;
|
|
52
49
|
}
|
|
53
50
|
let insertAt = categoryIdx + 1;
|
|
54
51
|
while (insertAt < lines.length && lines[insertAt].trim() === '')
|
|
55
52
|
insertAt++;
|
|
56
53
|
lines.splice(insertAt, 0, `- ${entry}`);
|
|
57
|
-
return lines
|
|
54
|
+
return lines;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Pure string transform (exported for unit testing): inserts a `- entry`
|
|
58
|
+
* bullet under the `## [Unreleased]` -> `### category` section of `content`,
|
|
59
|
+
* creating whichever of those two headings is missing. Section boundaries
|
|
60
|
+
* are found structurally (next `## `/`### ` heading, or end of file) rather
|
|
61
|
+
* than assuming any particular heading is the last one, so it works whether
|
|
62
|
+
* [Unreleased] already has other categories, is the only `##` section, or
|
|
63
|
+
* doesn't exist yet.
|
|
64
|
+
*/
|
|
65
|
+
export function insertChangelogEntry(content, category, entry) {
|
|
66
|
+
const lines = content.split('\n');
|
|
67
|
+
const unreleasedIdx = lines.findIndex((l) => /^##\s*\[Unreleased\]/i.test(l));
|
|
68
|
+
if (unreleasedIdx === -1) {
|
|
69
|
+
return insertMissingUnreleasedSection(lines, category, entry).join('\n');
|
|
70
|
+
}
|
|
71
|
+
const sectionEnd = findUnreleasedSectionEnd(lines, unreleasedIdx);
|
|
72
|
+
return insertUnderCategory(lines, unreleasedIdx, sectionEnd, category, entry).join('\n');
|
|
58
73
|
}
|
|
59
74
|
/** Writes the updated CHANGELOG.md into the worktree; callers stage it afterwards so it rides along in the same commit as the rest of the change. */
|
|
60
75
|
export function updateChangelog(worktreePath, intent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateChangelog.js","sourceRoot":"","sources":["../../src/workflow/updateChangelog.ts"],"names":[],"mappings":"AAAA,wMAAwM;AAExM,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAE1C,+FAA+F;AAC/F,MAAM,uBAAuB,GAAiD;IAC5E,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,oBAAoB,GACxB,iBAAiB;IACjB,kFAAkF;IAClF,wFAAwF;IACxF,+CAA+C,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"updateChangelog.js","sourceRoot":"","sources":["../../src/workflow/updateChangelog.ts"],"names":[],"mappings":"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"}
|
|
@@ -46,24 +46,5 @@ export type PollOutcome = {
|
|
|
46
46
|
} | {
|
|
47
47
|
kind: 'no-pipeline';
|
|
48
48
|
};
|
|
49
|
-
/**
|
|
50
|
-
* Waits for either a *new* terminal pipeline, a confirmed merge conflict, or
|
|
51
|
-
* (only on the first pipeline of the run) confirmation that no CI is
|
|
52
|
-
* configured at all — whichever comes first. `previousPipelineId` is the one
|
|
53
|
-
* we already handled, and it stays "latest" on the forge until the pipeline
|
|
54
|
-
* for our fix push is created — without this, the loop would re-fix stale
|
|
55
|
-
* logs and burn attempts on a single real failure.
|
|
56
|
-
*
|
|
57
|
-
* The conflict check runs on every interval (not just once per outer loop
|
|
58
|
-
* iteration): some repos never run CI on an unmergeable PR, so waiting for a
|
|
59
|
-
* terminal pipeline that will never arrive would otherwise spin until the
|
|
60
|
-
* 2-hour safety window times out instead of surfacing the conflict promptly.
|
|
61
|
-
*
|
|
62
|
-
* `noPipelineGraceMs` defaults to NO_PIPELINE_GRACE_MS and is only overridable
|
|
63
|
-
* so tests don't have to wait out the real grace window. `ciConfigured`
|
|
64
|
-
* (see hasCiConfig) disarms the grace window entirely: a repo with a real CI
|
|
65
|
-
* config file must never be declared "no CI" just because its pipeline is
|
|
66
|
-
* slow to register — it should keep polling the full window instead.
|
|
67
|
-
*/
|
|
68
49
|
export declare function pollForNextAction(forge: ForgeClient, mrIid: number, intervalMs: number, previousPipelineId?: number, noPipelineGraceMs?: number, ciConfigured?: boolean): Promise<PollOutcome>;
|
|
69
50
|
export declare function watchPipeline(forge: ForgeClient, config: PipelineWorkerConfig, agent: AgentAdapter, worktreePath: string, branch: string, targetBranch: string, mrIid: number, state: RunState, repoRoot: string): Promise<void>;
|