@on-par/factory-core 0.9.27-next.13 → 0.9.27-next.14

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 (95) hide show
  1. package/dist/checkers/preview-check.d.ts +24 -0
  2. package/dist/checkers/preview-check.d.ts.map +1 -0
  3. package/dist/checkers/preview-check.js +57 -0
  4. package/dist/checkers/preview-check.js.map +1 -0
  5. package/dist/checkers/preview-evidence.d.ts +26 -0
  6. package/dist/checkers/preview-evidence.d.ts.map +1 -0
  7. package/dist/checkers/preview-evidence.js +57 -0
  8. package/dist/checkers/preview-evidence.js.map +1 -0
  9. package/dist/checkers/preview-pin.d.ts +16 -0
  10. package/dist/checkers/preview-pin.d.ts.map +1 -0
  11. package/dist/checkers/preview-pin.js +47 -0
  12. package/dist/checkers/preview-pin.js.map +1 -0
  13. package/dist/checkers/preview-receipt.d.ts +7 -0
  14. package/dist/checkers/preview-receipt.d.ts.map +1 -0
  15. package/dist/checkers/preview-receipt.js +33 -0
  16. package/dist/checkers/preview-receipt.js.map +1 -0
  17. package/dist/checkers/preview-source-octokit.d.ts +4 -0
  18. package/dist/checkers/preview-source-octokit.d.ts.map +1 -0
  19. package/dist/checkers/preview-source-octokit.js +47 -0
  20. package/dist/checkers/preview-source-octokit.js.map +1 -0
  21. package/dist/checkers/preview-source.d.ts +35 -0
  22. package/dist/checkers/preview-source.d.ts.map +1 -0
  23. package/dist/checkers/preview-source.js +45 -0
  24. package/dist/checkers/preview-source.js.map +1 -0
  25. package/dist/checkers/preview-url-guard.d.ts +5 -0
  26. package/dist/checkers/preview-url-guard.d.ts.map +1 -0
  27. package/dist/checkers/preview-url-guard.js +84 -0
  28. package/dist/checkers/preview-url-guard.js.map +1 -0
  29. package/dist/checkers/preview-wait.d.ts +26 -0
  30. package/dist/checkers/preview-wait.d.ts.map +1 -0
  31. package/dist/checkers/preview-wait.js +43 -0
  32. package/dist/checkers/preview-wait.js.map +1 -0
  33. package/dist/config/example.d.ts.map +1 -1
  34. package/dist/config/example.js +1 -0
  35. package/dist/config/example.js.map +1 -1
  36. package/dist/config/optional-sections.d.ts +22 -0
  37. package/dist/config/optional-sections.d.ts.map +1 -1
  38. package/dist/config/optional-sections.js +7 -1
  39. package/dist/config/optional-sections.js.map +1 -1
  40. package/dist/config/preview-section.d.ts +49 -0
  41. package/dist/config/preview-section.d.ts.map +1 -0
  42. package/dist/config/preview-section.js +72 -0
  43. package/dist/config/preview-section.js.map +1 -0
  44. package/dist/config/repo.d.ts +22 -0
  45. package/dist/config/repo.d.ts.map +1 -1
  46. package/dist/daemon/execution-config.d.ts +22 -0
  47. package/dist/daemon/execution-config.d.ts.map +1 -1
  48. package/dist/daemon/run-runtime.d.ts +22 -0
  49. package/dist/daemon/run-runtime.d.ts.map +1 -1
  50. package/dist/fakes/fake-github.d.ts +18 -0
  51. package/dist/fakes/fake-github.d.ts.map +1 -0
  52. package/dist/fakes/fake-github.js +28 -0
  53. package/dist/fakes/fake-github.js.map +1 -0
  54. package/dist/internal.d.ts +1 -0
  55. package/dist/internal.d.ts.map +1 -1
  56. package/dist/internal.js +1 -0
  57. package/dist/internal.js.map +1 -1
  58. package/dist/phases/ship-preview.d.ts +18 -0
  59. package/dist/phases/ship-preview.d.ts.map +1 -0
  60. package/dist/phases/ship-preview.js +38 -0
  61. package/dist/phases/ship-preview.js.map +1 -0
  62. package/dist/phases/ship.d.ts +6 -1
  63. package/dist/phases/ship.d.ts.map +1 -1
  64. package/dist/phases/ship.js +33 -4
  65. package/dist/phases/ship.js.map +1 -1
  66. package/dist/public-api-keys.d.ts.map +1 -1
  67. package/dist/public-api-keys.js +2 -0
  68. package/dist/public-api-keys.js.map +1 -1
  69. package/dist/review/marked-block.d.ts +6 -0
  70. package/dist/review/marked-block.d.ts.map +1 -0
  71. package/dist/review/marked-block.js +22 -0
  72. package/dist/review/marked-block.js.map +1 -0
  73. package/dist/review/risk-receipt.d.ts.map +1 -1
  74. package/dist/review/risk-receipt.js +2 -19
  75. package/dist/review/risk-receipt.js.map +1 -1
  76. package/dist/run/ci-rework-loop.d.ts +3 -1
  77. package/dist/run/ci-rework-loop.d.ts.map +1 -1
  78. package/dist/run/ci-rework-loop.js +150 -136
  79. package/dist/run/ci-rework-loop.js.map +1 -1
  80. package/dist/run/ci-rework-round.d.ts +41 -0
  81. package/dist/run/ci-rework-round.d.ts.map +1 -0
  82. package/dist/run/ci-rework-round.js +60 -0
  83. package/dist/run/ci-rework-round.js.map +1 -0
  84. package/dist/run/ci-rework-test-helpers.d.ts +35 -0
  85. package/dist/run/ci-rework-test-helpers.d.ts.map +1 -0
  86. package/dist/run/ci-rework-test-helpers.js +120 -0
  87. package/dist/run/ci-rework-test-helpers.js.map +1 -0
  88. package/dist/run/ship-park.d.ts.map +1 -1
  89. package/dist/run/ship-park.js +2 -0
  90. package/dist/run/ship-park.js.map +1 -1
  91. package/dist/testing.d.ts +2 -0
  92. package/dist/testing.d.ts.map +1 -1
  93. package/dist/testing.js +1 -0
  94. package/dist/testing.js.map +1 -1
  95. package/package.json +5 -5
@@ -1,12 +1,15 @@
1
1
  // packages/core/src/run/ci-rework-loop.ts — SHIP with a bounded CI rework loop (#2816)
2
+ import { PREVIEW_REWORK_INSTRUCTIONS, previewReworkSummary, runPreviewCheck } from '../checkers/preview-check.js';
3
+ import { createOctokitPreviewGitHub } from '../checkers/preview-source-octokit.js';
4
+ import { loadRepoConfig } from '../config/repo.js';
2
5
  import { workKeyFromIssue } from '../work/work-key.js';
3
6
  import { reworkWorker as reworkWorkerDefault, } from '../phases/check.js';
4
7
  import { claimGuardedRunner } from '../phases/ship-git.js';
5
8
  import { stackPositionFor } from '../phases/stack-order.js';
6
9
  import { collectFailingJobLogs as collectFailingJobLogsDefault } from '../utils/ci-evidence.js';
7
10
  import { attributableCodeqlAlerts, attributeCiFailure, CI_CHECK_REWORK_INSTRUCTIONS, CI_REWORK_INSTRUCTIONS, ciCheckReworkSummary, ciReworkSummary, listBaseCodeqlAlerts as listBaseCodeqlAlertsDefault, listBaseFailingChecks as listBaseFailingChecksDefault, listPrChangedFiles as listPrChangedFilesDefault, needsBaseAlerts, needsBaseChecks, resolveMaxCiReworkRounds, } from './ci-rework.js';
8
- import { describeSuppression, mergeBaseIntoWorktree as mergeBaseIntoWorktreeDefault, readReworkDiff as readReworkDiffDefault, readWorktreeHead as readWorktreeHeadDefault, scanReworkDiff, } from './ci-suppression-guard.js';
9
- import { reworkRouteFor } from './outcome.js';
11
+ import { runCiReworkRound } from './ci-rework-round.js';
12
+ import { describeSuppression, mergeBaseIntoWorktree as mergeBaseIntoWorktreeDefault, readReworkDiff as readReworkDiffDefault, readWorktreeHead as readWorktreeHeadDefault, } from './ci-suppression-guard.js';
10
13
  import { shipParkReason } from './ship-park.js';
11
14
  const errorMessage = (err) => (err instanceof Error ? err.message : String(err));
12
15
  /** Failing checks the PR caused (not failing on base) that are not CodeQL, in ship.ciFailure order. */
@@ -16,12 +19,8 @@ function attributableNonCodeqlChecks(evidence, items) {
16
19
  const names = new Set(items.filter((i) => i.kind === 'check' && i.attributable).map((i) => i.ref));
17
20
  return evidence.failingChecks.filter((c) => names.has(c.name) && !/codeql/i.test(c.name));
18
21
  }
19
- const guardError = (match) => ({
20
- kind: 'path',
21
- rule: 'guard-error',
22
- file: '(unknown)',
23
- match,
24
- });
22
+ const isPreviewRework = (ship) => !!ship.previewCheck && ship.previewCheck.status !== 'pass' && !ship.ciPending;
23
+ const loadPreviewConfigDefault = (worktree) => loadRepoConfig(worktree)?.preview;
25
24
  /**
26
25
  * Runs SHIP. When the CI watch fails on CodeQL alerts the PR introduced (on changed files, or not open on base), feeds them to the
27
26
  * BUILD rework worker, re-runs CHECK and re-enters SHIP on the same PR, up to
@@ -33,7 +32,7 @@ const guardError = (match) => ({
33
32
  * or an unreadable diff, parks ci-failed before the re-CHECK, push or re-watch.
34
33
  */
35
34
  export async function shipWithCiRework(ctx, inputs) {
36
- const { request, ports, shipPhase, checkPhase, check } = ctx;
35
+ const { request, ports, shipPhase, check } = ctx;
37
36
  const rework = ports.reworkWorker ?? reworkWorkerDefault;
38
37
  const listChanged = ports.listPrChangedFiles ?? listPrChangedFilesDefault;
39
38
  const listBase = ports.listBaseFailingChecks ?? listBaseFailingChecksDefault;
@@ -44,6 +43,21 @@ export async function shipWithCiRework(ctx, inputs) {
44
43
  const collectLogs = ports.collectFailingJobLogs ?? collectFailingJobLogsDefault;
45
44
  const { builtRoute, builtModel, planSlice } = inputs;
46
45
  const log = ports.events();
46
+ const [owner, repoName] = request.repo.split('/');
47
+ const previewConfig = (ports.loadPreviewConfig ?? loadPreviewConfigDefault)(ports.workspace.path);
48
+ const previewGate = previewConfig
49
+ ? (pr) => runPreviewCheck({
50
+ config: previewConfig,
51
+ github: createOctokitPreviewGitHub(ports.octokit),
52
+ owner,
53
+ repo: repoName,
54
+ prNumber: pr.prNumber,
55
+ headSha: pr.headSha,
56
+ worktree: ports.workspace.path,
57
+ logsDir: request.logsDir,
58
+ onPgid: ctx.onPgid,
59
+ })
60
+ : undefined;
47
61
  const shipOpts = {
48
62
  issue: workKeyFromIssue(request.issue),
49
63
  repo: request.repo,
@@ -65,6 +79,7 @@ export async function shipWithCiRework(ctx, inputs) {
65
79
  logsDir: request.logsDir,
66
80
  work: request.work,
67
81
  ...(ports.claimSignal ? { run: claimGuardedRunner(ports.claimSignal) } : {}),
82
+ ...(previewGate ? { previewGate } : {}),
68
83
  laneId: request.lane,
69
84
  reviewRouting: inputs.reviewRouting,
70
85
  ...(inputs.pinNote ? { pinNotes: [inputs.pinNote] } : {}),
@@ -79,152 +94,151 @@ export async function shipWithCiRework(ctx, inputs) {
79
94
  ports.claimSignal?.throwIfAborted();
80
95
  let ship = await shipPhase({ ...shipOpts, checkSummary: check.summary, reworkRounds: check.reworkRounds });
81
96
  ports.claimSignal?.throwIfAborted();
82
- const [owner, repoName] = request.repo.split('/');
83
97
  const maxRounds = resolveMaxCiReworkRounds();
84
98
  let rounds = 0;
85
99
  let lastCiFailure = ship.ciFailure;
86
100
  let suffix = '';
87
- while (!ship.ok && ship.ciOutcome === 'failure' && ship.prNumber !== undefined) {
88
- lastCiFailure = ship.ciFailure ?? lastCiFailure;
89
- let changed;
90
- try {
91
- changed = await listChanged(ports.octokit, owner, repoName, ship.prNumber);
92
- }
93
- catch (err) {
94
- const msg = `could not list PR #${ship.prNumber} files for CI attribution: ${errorMessage(err)}`;
95
- ports.events('ship')('ship', msg);
96
- break;
101
+ const suppressionPark = (findings) => {
102
+ const described = describeSuppression(findings);
103
+ ports.events('ship')('ship', `${described} after CI rework round ${rounds} (PR #${ship.prNumber})`);
104
+ const message = ship.reason
105
+ ? `ship phase failed: ${ship.reason} — ${described}`
106
+ : `ship phase failed — ${described}`;
107
+ const base = lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false };
108
+ return { ship, parked: { reason: 'ci-failed', message, ciFailure: { ...base, suppressionAttempt: findings } } };
109
+ };
110
+ const roundPorts = {
111
+ ctx,
112
+ rework,
113
+ readHead,
114
+ readDiff,
115
+ builtRoute,
116
+ builtModel,
117
+ reship: (recheck, reentry) => shipPhase({ ...shipOpts, checkSummary: recheck.summary, reworkRounds: recheck.reworkRounds, reentry }),
118
+ };
119
+ while (!ship.ok && ship.prNumber !== undefined && (ship.ciOutcome === 'failure' || isPreviewRework(ship))) {
120
+ let plan;
121
+ if (ship.previewCheck && isPreviewRework(ship)) {
122
+ if (rounds >= maxRounds) {
123
+ suffix = ` — preview rework budget exhausted after ${rounds} round${rounds === 1 ? '' : 's'}`;
124
+ break;
125
+ }
126
+ rounds++;
127
+ log('rework', `CI rework round ${rounds}/${maxRounds}: preview check ${ship.previewCheck.status} on PR #${ship.prNumber}`);
128
+ plan = {
129
+ label: 'preview',
130
+ round: rounds,
131
+ reentry: { prNumber: ship.prNumber, previousHeadSha: ship.headSha },
132
+ summary: {
133
+ failures: 1,
134
+ passes: 0,
135
+ skips: 0,
136
+ total: 1,
137
+ results: [{ checker: 'preview_check', result: 'FAIL', details: previewReworkSummary(ship.previewCheck) }],
138
+ },
139
+ extraInstructions: PREVIEW_REWORK_INSTRUCTIONS,
140
+ };
97
141
  }
98
- let base;
99
- if (needsBaseChecks(ship.ciFailure)) {
142
+ else {
143
+ lastCiFailure = ship.ciFailure ?? lastCiFailure;
144
+ let changed;
100
145
  try {
101
- base = await listBase(ports.octokit, owner, repoName, ship.prNumber);
146
+ changed = await listChanged(ports.octokit, owner, repoName, ship.prNumber);
102
147
  }
103
148
  catch (err) {
104
- ports.events('ship')('ship', `could not read base checks for PR #${ship.prNumber}: ${errorMessage(err)}`);
149
+ const msg = `could not list PR #${ship.prNumber} files for CI attribution: ${errorMessage(err)}`;
150
+ ports.events('ship')('ship', msg);
151
+ break;
105
152
  }
106
- }
107
- let baseAlerts;
108
- if (needsBaseAlerts(ship.ciFailure, changed)) {
109
- try {
110
- baseAlerts = await listBaseAlerts(ports.octokit, owner, repoName, ship.prNumber);
153
+ let base;
154
+ if (needsBaseChecks(ship.ciFailure)) {
155
+ try {
156
+ base = await listBase(ports.octokit, owner, repoName, ship.prNumber);
157
+ }
158
+ catch (err) {
159
+ ports.events('ship')('ship', `could not read base checks for PR #${ship.prNumber}: ${errorMessage(err)}`);
160
+ }
111
161
  }
112
- catch (err) {
113
- ports.events('ship')('ship', `could not read base CodeQL alerts for PR #${ship.prNumber}: ${errorMessage(err)}`);
162
+ let baseAlerts;
163
+ if (needsBaseAlerts(ship.ciFailure, changed)) {
164
+ try {
165
+ baseAlerts = await listBaseAlerts(ports.octokit, owner, repoName, ship.prNumber);
166
+ }
167
+ catch (err) {
168
+ ports.events('ship')('ship', `could not read base CodeQL alerts for PR #${ship.prNumber}: ${errorMessage(err)}`);
169
+ }
114
170
  }
115
- }
116
- const attribution = attributeCiFailure(ship.ciFailure, changed, base, baseAlerts);
117
- if (ship.ciFailure)
118
- lastCiFailure = { ...ship.ciFailure, attribution };
119
- if (attribution.baseline) {
120
- const note = 'baseline: no CI failure is attributable to this PR';
121
- suffix = ` — ${note}`;
122
- ports.events('ship')('ship', `${note} (PR #${ship.prNumber})`);
123
- break;
124
- }
125
- const attributable = attributableCodeqlAlerts(ship.ciFailure, changed, baseAlerts);
126
- const failingChecks = attributable.length === 0 && base ? attributableNonCodeqlChecks(ship.ciFailure, attribution.items) : [];
127
- if (attributable.length === 0 && failingChecks.length === 0)
128
- break;
129
- if (rounds >= maxRounds) {
130
- suffix = ` — CI rework budget exhausted after ${rounds} round${rounds === 1 ? '' : 's'}`;
131
- break;
132
- }
133
- rounds++;
134
- const skipped = attribution.items.filter((i) => !i.attributable).map((i) => i.ref);
135
- const what = attributable.length > 0
136
- ? `${attributable.length} attributable CodeQL alert(s)`
137
- : `attributable failing check(s) ${failingChecks.map((c) => c.name).join(', ')}`;
138
- log('rework', `CI rework round ${rounds}/${maxRounds}: ${what} on PR #${ship.prNumber}` +
139
- (skipped.length > 0 ? `; non-attributable: ${skipped.join(', ')}` : ''), lastCiFailure ? { ciFailure: lastCiFailure } : undefined);
140
- const suppressionPark = (findings) => {
141
- const described = describeSuppression(findings);
142
- ports.events('ship')('ship', `${described} after CI rework round ${rounds} (PR #${ship.prNumber})`);
143
- const message = ship.reason
144
- ? `ship phase failed: ${ship.reason} — ${described}`
145
- : `ship phase failed — ${described}`;
146
- const base = lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false };
147
- return { ship, parked: { reason: 'ci-failed', message, ciFailure: { ...base, suppressionAttempt: findings } } };
148
- };
149
- let logs = { jobLogs: [], errors: [] };
150
- if (attributable.length === 0 && base) {
151
- const merge = await mergeBase(ports.workspace.path, base.baseRef);
152
- if (!merge.ok && merge.conflict) {
153
- const message = `merge of origin/${base.baseRef} into ${request.branch} conflicts before CI rework round ${rounds}: ${merge.paths.join(', ')}`;
154
- ports.events('ship')('ship', message);
155
- return { ship, parked: { reason: 'conflict', message, ciFailure: lastCiFailure } };
171
+ const attribution = attributeCiFailure(ship.ciFailure, changed, base, baseAlerts);
172
+ if (ship.ciFailure)
173
+ lastCiFailure = { ...ship.ciFailure, attribution };
174
+ if (attribution.baseline) {
175
+ const note = 'baseline: no CI failure is attributable to this PR';
176
+ suffix = ` — ${note}`;
177
+ ports.events('ship')('ship', `${note} (PR #${ship.prNumber})`);
178
+ break;
156
179
  }
157
- if (!merge.ok) {
158
- suffix = ` — could not merge origin/${base.baseRef}: ${merge.message}`;
180
+ const attributable = attributableCodeqlAlerts(ship.ciFailure, changed, baseAlerts);
181
+ const failingChecks = attributable.length === 0 && base ? attributableNonCodeqlChecks(ship.ciFailure, attribution.items) : [];
182
+ if (attributable.length === 0 && failingChecks.length === 0)
183
+ break;
184
+ if (rounds >= maxRounds) {
185
+ suffix = ` — CI rework budget exhausted after ${rounds} round${rounds === 1 ? '' : 's'}`;
159
186
  break;
160
187
  }
161
- if (merge.merged) {
162
- ports.events('ship')('ship', `merged origin/${base.baseRef} into ${request.branch} before CI rework round ${rounds}`);
188
+ rounds++;
189
+ const skipped = attribution.items.filter((i) => !i.attributable).map((i) => i.ref);
190
+ const what = attributable.length > 0
191
+ ? `${attributable.length} attributable CodeQL alert(s)`
192
+ : `attributable failing check(s) ${failingChecks.map((c) => c.name).join(', ')}`;
193
+ log('rework', `CI rework round ${rounds}/${maxRounds}: ${what} on PR #${ship.prNumber}` +
194
+ (skipped.length > 0 ? `; non-attributable: ${skipped.join(', ')}` : ''), lastCiFailure ? { ciFailure: lastCiFailure } : undefined);
195
+ let logs = { jobLogs: [], errors: [] };
196
+ if (attributable.length === 0 && base) {
197
+ const merge = await mergeBase(ports.workspace.path, base.baseRef);
198
+ if (!merge.ok && merge.conflict) {
199
+ const message = `merge of origin/${base.baseRef} into ${request.branch} conflicts before CI rework round ${rounds}: ${merge.paths.join(', ')}`;
200
+ ports.events('ship')('ship', message);
201
+ return { ship, parked: { reason: 'conflict', message, ciFailure: lastCiFailure } };
202
+ }
203
+ if (!merge.ok) {
204
+ suffix = ` — could not merge origin/${base.baseRef}: ${merge.message}`;
205
+ break;
206
+ }
207
+ if (merge.merged) {
208
+ ports.events('ship')('ship', `merged origin/${base.baseRef} into ${request.branch} before CI rework round ${rounds}`);
209
+ }
210
+ logs = await collectLogs({
211
+ octokit: ports.octokit,
212
+ owner,
213
+ repo: repoName,
214
+ ref: ship.headSha ?? request.branch,
215
+ checkNames: failingChecks.map((c) => c.name),
216
+ });
217
+ lastCiFailure = {
218
+ ...(lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false }),
219
+ jobLogs: logs.jobLogs,
220
+ };
163
221
  }
164
- logs = await collectLogs({
165
- octokit: ports.octokit,
166
- owner,
167
- repo: repoName,
168
- ref: ship.headSha ?? request.branch,
169
- checkNames: failingChecks.map((c) => c.name),
170
- });
171
- lastCiFailure = {
172
- ...(lastCiFailure ?? { failingChecks: [], alerts: [], truncated: false }),
173
- jobLogs: logs.jobLogs,
222
+ plan = {
223
+ label: 'CI',
224
+ round: rounds,
225
+ reentry: { prNumber: ship.prNumber, previousHeadSha: ship.headSha },
226
+ summary: attributable.length > 0
227
+ ? ciReworkSummary(attributable)
228
+ : ciCheckReworkSummary(failingChecks, logs.jobLogs, logs.errors),
229
+ extraInstructions: attributable.length > 0 ? CI_REWORK_INSTRUCTIONS : CI_CHECK_REWORK_INSTRUCTIONS,
174
230
  };
175
231
  }
176
- let beforeSha;
177
- try {
178
- beforeSha = await readHead(ports.workspace.path);
179
- }
180
- catch (err) {
181
- return suppressionPark([guardError(`could not read the worktree HEAD: ${errorMessage(err)}`)]);
182
- }
183
- const worked = await rework({
184
- issue: workKeyFromIssue(request.issue),
185
- worktree: ports.workspace.path,
186
- specPath: request.specPath,
187
- summary: attributable.length > 0
188
- ? ciReworkSummary(attributable)
189
- : ciCheckReworkSummary(failingChecks, logs.jobLogs, logs.errors),
190
- constitution: ctx.constitution,
191
- router: ports.router,
192
- log: ports.events('build'),
193
- buildTimeoutSeconds: request.timeouts.build,
194
- sandbox: request.sandboxPolicy,
195
- appPort: ctx.appPort,
196
- appBaseUrl: ctx.appBaseUrl,
197
- onPgid: ctx.onPgid,
198
- ...reworkRouteFor(builtRoute, builtModel),
199
- runId: ctx.runId,
200
- onWorkerResult: ctx.checkOpts.onWorkerResult,
201
- extraInstructions: attributable.length > 0 ? CI_REWORK_INSTRUCTIONS : CI_CHECK_REWORK_INSTRUCTIONS,
202
- });
203
- if (!worked.modelCompleted) {
204
- suffix = ' — CI rework worker never ran';
232
+ const step = await runCiReworkRound(roundPorts, plan);
233
+ if (step.kind === 'suppressed')
234
+ return suppressionPark(step.findings);
235
+ if (step.kind === 'ended')
236
+ return { ship, outcome: step.outcome };
237
+ if (step.kind === 'never-ran') {
238
+ suffix = ` — ${plan.label} rework worker never ran`;
205
239
  break;
206
240
  }
207
- let findings;
208
- try {
209
- findings = scanReworkDiff(await readDiff(ports.workspace.path, beforeSha));
210
- }
211
- catch (err) {
212
- findings = [guardError(`could not read the CI rework diff: ${errorMessage(err)}`)];
213
- }
214
- if (findings.length > 0)
215
- return suppressionPark(findings);
216
- const recheck = await checkPhase(ctx.checkOpts);
217
- const ended = await ctx.onRecheck(recheck, rounds);
218
- if (ended)
219
- return { ship, outcome: ended };
220
- ports.claimSignal?.throwIfAborted();
221
- ship = await shipPhase({
222
- ...shipOpts,
223
- checkSummary: recheck.summary,
224
- reworkRounds: recheck.reworkRounds,
225
- reentry: { prNumber: ship.prNumber, previousHeadSha: ship.headSha },
226
- });
227
- ports.claimSignal?.throwIfAborted();
241
+ ship = step.ship;
228
242
  }
229
243
  if (ship.ok)
230
244
  return { ship };
@@ -1 +1 @@
1
- {"version":3,"file":"ci-rework-loop.js","sourceRoot":"","sources":["../../src/run/ci-rework-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci-rework-loop.js","sourceRoot":"","sources":["../../src/run/ci-rework-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { CheckPhaseResult, reworkWorker as reworkWorkerDefault } from '../phases/check.js';
2
+ import type { ShipResult } from '../phases/ship.js';
3
+ import type { CiSuppressionFinding } from '../types/index.js';
4
+ import type { readReworkDiff, readWorktreeHead } from './ci-suppression-guard.js';
5
+ import type { CiReworkLoopContext } from './ci-rework-loop.js';
6
+ import { type BuildRoute, type RunOutcome } from './outcome.js';
7
+ type ReworkInput = Parameters<typeof reworkWorkerDefault>[0];
8
+ export interface CiReworkRoundPorts {
9
+ ctx: CiReworkLoopContext;
10
+ rework: typeof reworkWorkerDefault;
11
+ readHead: typeof readWorktreeHead;
12
+ readDiff: typeof readReworkDiff;
13
+ builtRoute: BuildRoute;
14
+ builtModel: string;
15
+ reship: (recheck: CheckPhaseResult, reentry: CiReworkReentry) => Promise<ShipResult>;
16
+ }
17
+ export interface CiReworkReentry {
18
+ prNumber: number;
19
+ previousHeadSha: string | undefined;
20
+ }
21
+ export interface CiReworkRoundPlan {
22
+ round: number;
23
+ reentry: CiReworkReentry;
24
+ summary: ReworkInput['summary'];
25
+ extraInstructions: string;
26
+ }
27
+ export type CiReworkRoundOutcome = {
28
+ kind: 'shipped';
29
+ ship: ShipResult;
30
+ } | {
31
+ kind: 'never-ran';
32
+ } | {
33
+ kind: 'suppressed';
34
+ findings: CiSuppressionFinding[];
35
+ } | {
36
+ kind: 'ended';
37
+ outcome: RunOutcome;
38
+ };
39
+ export declare function runCiReworkRound(ports: CiReworkRoundPorts, plan: CiReworkRoundPlan): Promise<CiReworkRoundOutcome>;
40
+ export {};
41
+ //# sourceMappingURL=ci-rework-round.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-rework-round.d.ts","sourceRoot":"","sources":["../../src/run/ci-rework-round.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAkB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAEhF,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,mBAAmB,CAAC;IACzB,MAAM,EAAE,OAAO,mBAAmB,CAAC;IACnC,QAAQ,EAAE,OAAO,gBAAgB,CAAC;IAClC,QAAQ,EAAE,OAAO,cAAc,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAW3C,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,kBAAkB,EACzB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,oBAAoB,CAAC,CA2C/B"}
@@ -0,0 +1,60 @@
1
+ import { workKeyFromIssue } from '../work/work-key.js';
2
+ import { scanReworkDiff } from './ci-suppression-guard.js';
3
+ import { reworkRouteFor } from './outcome.js';
4
+ const errorMessage = (err) => (err instanceof Error ? err.message : String(err));
5
+ const guardError = (match) => ({
6
+ kind: 'path',
7
+ rule: 'guard-error',
8
+ file: '(unknown)',
9
+ match,
10
+ });
11
+ export async function runCiReworkRound(ports, plan) {
12
+ const { ctx } = ports;
13
+ const { request } = ctx;
14
+ const worktree = ctx.ports.workspace.path;
15
+ let before;
16
+ try {
17
+ before = await ports.readHead(worktree);
18
+ }
19
+ catch (err) {
20
+ return { kind: 'suppressed', findings: [guardError(`could not read the worktree HEAD: ${errorMessage(err)}`)] };
21
+ }
22
+ const worked = await ports.rework({
23
+ issue: workKeyFromIssue(request.issue),
24
+ worktree,
25
+ specPath: request.specPath,
26
+ summary: plan.summary,
27
+ constitution: ctx.constitution,
28
+ router: ctx.ports.router,
29
+ log: ctx.ports.events('build'),
30
+ buildTimeoutSeconds: request.timeouts.build,
31
+ sandbox: request.sandboxPolicy,
32
+ appPort: ctx.appPort,
33
+ appBaseUrl: ctx.appBaseUrl,
34
+ onPgid: ctx.onPgid,
35
+ ...reworkRouteFor(ports.builtRoute, ports.builtModel),
36
+ runId: ctx.runId,
37
+ onWorkerResult: ctx.checkOpts.onWorkerResult,
38
+ extraInstructions: plan.extraInstructions,
39
+ });
40
+ if (!worked.modelCompleted)
41
+ return { kind: 'never-ran' };
42
+ let findings;
43
+ try {
44
+ findings = scanReworkDiff(await ports.readDiff(worktree, before));
45
+ }
46
+ catch (err) {
47
+ findings = [guardError(`could not read the CI rework diff: ${errorMessage(err)}`)];
48
+ }
49
+ if (findings.length > 0)
50
+ return { kind: 'suppressed', findings };
51
+ const recheck = await ctx.checkPhase(ctx.checkOpts);
52
+ const ended = await ctx.onRecheck(recheck, plan.round);
53
+ if (ended)
54
+ return { kind: 'ended', outcome: ended };
55
+ ctx.ports.claimSignal?.throwIfAborted();
56
+ const ship = await ports.reship(recheck, plan.reentry);
57
+ ctx.ports.claimSignal?.throwIfAborted();
58
+ return { kind: 'shipped', ship };
59
+ }
60
+ //# sourceMappingURL=ci-rework-round.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-rework-round.js","sourceRoot":"","sources":["../../src/run/ci-rework-round.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { ModelsConfig, RoutesConfig } from '../config/index.js';
2
+ import type { BuildResult, buildPhase as realBuildPhase } from '../phases/build.js';
3
+ import type { CheckPhaseResult, checkPhase as realCheckPhase } from '../phases/check.js';
4
+ import type { PlanResult, planPhase as realPlanPhase } from '../phases/plan.js';
5
+ import type { shipPhase as realShipPhase } from '../phases/ship.js';
6
+ import type { WorkRequest } from '../work/index.js';
7
+ import type { RunPolicy } from './policy.js';
8
+ import type { reworkWorker as realReworkWorker } from '../phases/check.js';
9
+ import type { RunPorts, RunRequest } from './run-issue.js';
10
+ export declare const planPhase: import("vitest").Mock<typeof realPlanPhase>;
11
+ export declare const buildPhase: import("vitest").Mock<typeof realBuildPhase>;
12
+ export declare const checkPhase: import("vitest").Mock<typeof realCheckPhase>;
13
+ export declare const shipPhase: import("vitest").Mock<typeof realShipPhase>;
14
+ export declare const reworkWorker: import("vitest").Mock<typeof realReworkWorker>;
15
+ export declare const readWorktreeHead: import("vitest").Mock<(worktree: string) => Promise<string>>;
16
+ export declare const readReworkDiff: import("vitest").Mock<(worktree: string, fromSha: string) => Promise<string>>;
17
+ export declare const mergeBaseIntoWorktree: import("vitest").Mock<typeof import("./ci-suppression-guard.js").mergeBaseIntoWorktree>;
18
+ export declare const collectFailingJobLogs: import("vitest").Mock<typeof import("../utils/ci-evidence.js").collectFailingJobLogs>;
19
+ export declare const listPrChangedFiles: import("vitest").Mock<typeof import("./ci-rework.js").listPrChangedFiles>;
20
+ export declare const listBaseFailingChecks: import("vitest").Mock<typeof import("./ci-rework.js").listBaseFailingChecks>;
21
+ export declare const listBaseCodeqlAlerts: import("vitest").Mock<typeof import("./ci-rework.js").listBaseCodeqlAlerts>;
22
+ export declare const PLAN_OK: PlanResult;
23
+ export declare const BUILD_OK: BuildResult;
24
+ export declare const CHECK_OK: CheckPhaseResult;
25
+ export declare const WORK: WorkRequest;
26
+ export declare const request: RunRequest;
27
+ export declare const ROUTES: RoutesConfig;
28
+ export declare const MODELS: ModelsConfig;
29
+ export declare const policy: RunPolicy;
30
+ export declare const tmp: import("../testing.js").TempDirs;
31
+ export declare const breakerDir: string;
32
+ export type Log = ReturnType<RunPorts['events']>;
33
+ export declare function ports(log: Log): RunPorts;
34
+ export declare function resetCiReworkMocks(): void;
35
+ //# sourceMappingURL=ci-rework-test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-rework-test-helpers.d.ts","sourceRoot":"","sources":["../../src/run/ci-rework-test-helpers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,eAAO,MAAM,SAAS,6CAAgC,CAAC;AACvD,eAAO,MAAM,UAAU,8CAAiC,CAAC;AACzD,eAAO,MAAM,UAAU,8CAAiC,CAAC;AACzD,eAAO,MAAM,SAAS,6CAAgC,CAAC;AACvD,eAAO,MAAM,YAAY,gDAAmC,CAAC;AAC7D,eAAO,MAAM,gBAAgB,mCAAoB,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAG,CAAC;AAC/E,eAAO,MAAM,cAAc,mCAAoB,MAAM,WAAW,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAG,CAAC;AAC9F,eAAO,MAAM,qBAAqB,yFAA0D,CAAC;AAC7F,eAAO,MAAM,qBAAqB,uFAA0D,CAAC;AAC7F,eAAO,MAAM,kBAAkB,2EAAuD,CAAC;AACvF,eAAO,MAAM,qBAAqB,8EAA0D,CAAC;AAC7F,eAAO,MAAM,oBAAoB,6EAAyD,CAAC;AAE3F,eAAO,MAAM,OAAO,EAAE,UAMrB,CAAC;AACF,eAAO,MAAM,QAAQ,EAAE,WAAsD,CAAC;AAC9E,eAAO,MAAM,QAAQ,EAAE,gBAItB,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,WAMlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAerB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,YAAyC,CAAC;AAC/D,eAAO,MAAM,MAAM,EAAE,YAMpB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,SAYpB,CAAC;AAEF,eAAO,MAAM,GAAG,kCAAmB,CAAC;AACpC,eAAO,MAAM,UAAU,QAAuC,CAAC;AAI/D,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEjD,wBAAgB,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,CAqBxC;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAkBzC"}