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.
Files changed (57) hide show
  1. package/dist/agent/claude.js +87 -65
  2. package/dist/agent/claude.js.map +1 -1
  3. package/dist/agent/copilot.js +19 -14
  4. package/dist/agent/copilot.js.map +1 -1
  5. package/dist/cli.js +45 -39
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config/detectChecks.js +30 -15
  8. package/dist/config/detectChecks.js.map +1 -1
  9. package/dist/config/loader.js +30 -15
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/forge/github.d.ts +0 -7
  12. package/dist/forge/github.js +13 -19
  13. package/dist/forge/github.js.map +1 -1
  14. package/dist/forge/gitlab.d.ts +0 -6
  15. package/dist/forge/gitlab.js +8 -17
  16. package/dist/forge/gitlab.js.map +1 -1
  17. package/dist/forge/shared.d.ts +9 -0
  18. package/dist/forge/shared.js +27 -0
  19. package/dist/forge/shared.js.map +1 -0
  20. package/dist/git/commit.d.ts +0 -1
  21. package/dist/git/commit.js +0 -4
  22. package/dist/git/commit.js.map +1 -1
  23. package/dist/git/resolveProjectPath.d.ts +0 -6
  24. package/dist/git/resolveProjectPath.js +1 -1
  25. package/dist/git/resolveProjectPath.js.map +1 -1
  26. package/dist/git/worktree.d.ts +0 -7
  27. package/dist/git/worktree.js +42 -25
  28. package/dist/git/worktree.js.map +1 -1
  29. package/dist/mcp/server.js +8 -6
  30. package/dist/mcp/server.js.map +1 -1
  31. package/dist/process/signalCleanup.d.ts +15 -0
  32. package/dist/process/signalCleanup.js +19 -0
  33. package/dist/process/signalCleanup.js.map +1 -0
  34. package/dist/state/lock.d.ts +0 -6
  35. package/dist/state/lock.js +36 -21
  36. package/dist/state/lock.js.map +1 -1
  37. package/dist/state/runState.js +1 -0
  38. package/dist/state/runState.js.map +1 -1
  39. package/dist/toon/envelope.js +30 -17
  40. package/dist/toon/envelope.js.map +1 -1
  41. package/dist/ui/sessions.js +26 -8
  42. package/dist/ui/sessions.js.map +1 -1
  43. package/dist/ui/steps.d.ts +8 -11
  44. package/dist/ui/steps.js +24 -2
  45. package/dist/ui/steps.js.map +1 -1
  46. package/dist/version/autoUpdate.js +23 -15
  47. package/dist/version/autoUpdate.js.map +1 -1
  48. package/dist/workflow/orchestrate.js +130 -96
  49. package/dist/workflow/orchestrate.js.map +1 -1
  50. package/dist/workflow/runChecks.js +2 -0
  51. package/dist/workflow/runChecks.js.map +1 -1
  52. package/dist/workflow/updateChangelog.js +43 -28
  53. package/dist/workflow/updateChangelog.js.map +1 -1
  54. package/dist/workflow/watchPipeline.d.ts +0 -19
  55. package/dist/workflow/watchPipeline.js +115 -87
  56. package/dist/workflow/watchPipeline.js.map +1 -1
  57. 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 { step, runStep, skipStep, note, noteRisk, noteSession } from '../ui/steps.js';
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
- const agentResponse = agentResult.text;
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 { diffText, changedFiles, untrackedFiles } = await runStep(1, '📸', 'Capturing your changes', 'reading uncommitted edits and untracked files from your repo', () => captureDiff(repoRoot));
72
- if (diffText.trim().length === 0 && untrackedFiles.length === 0) {
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
- let cleanedUp = false;
83
- const cleanup = async () => {
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
- cleanedUp = true;
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 runStep(3, '🔄', 'Syncing worktree with origin', `pull --rebase origin ${targetBranch}, so the diff lands on the latest base`, () => syncWithOrigin(worktreePath, targetBranch));
111
- const applyResult = await runStep(4, '📦', 'Applying your changes', 'replay your diff and untracked files into the new worktree', () => applyDiffToWorktree(worktreePath, diffText, untrackedFiles, repoRoot));
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 runStep(7, '✅', 'Running checks', 'build, lint, and test — whichever your repo has configured', () => runChecks(config, worktreePath));
127
- for (const check of checks)
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
- state.phase = 'checks';
137
- recordEvent(repoRoot, state, `Checks passed (${checks.map((c) => c.name).join(', ')})`);
138
- if (config.updateChangelog) {
139
- await runStep(8, '📝', 'Updating changelog', "add a bullet under CHANGELOG.md's [Unreleased] section", async () => {
140
- updateChangelog(worktreePath, intent);
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
- if (finalPhase === 'done') {
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":"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,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,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"}
1
+ {"version":3,"file":"runChecks.js","sourceRoot":"","sources":["../../src/workflow/runChecks.ts"],"names":[],"mappings":"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"}
@@ -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
- * Pure string transform (exported for unit testing): inserts a `- entry`
17
- * bullet under the `## [Unreleased]` -> `### category` section of `content`,
18
- * creating whichever of those two headings is missing. Section boundaries
19
- * are found structurally (next `## `/`### ` heading, or end of file) rather
20
- * than assuming any particular heading is the last one, so it works whether
21
- * [Unreleased] already has other categories, is the only `##` section, or
22
- * doesn't exist yet.
23
- */
24
- export function insertChangelogEntry(content, category, entry) {
25
- const lines = content.split('\n');
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
- let sectionEnd = lines.length;
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
- sectionEnd = i;
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.join('\n');
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.join('\n');
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":"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"}
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>;