@on-par/factory-core 0.9.27-next.9 → 0.9.27

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 (133) hide show
  1. package/dist/checkers/baseline.d.ts +2 -0
  2. package/dist/checkers/baseline.d.ts.map +1 -1
  3. package/dist/checkers/baseline.js +20 -7
  4. package/dist/checkers/baseline.js.map +1 -1
  5. package/dist/checkers/preview-check.d.ts +24 -0
  6. package/dist/checkers/preview-check.d.ts.map +1 -0
  7. package/dist/checkers/preview-check.js +57 -0
  8. package/dist/checkers/preview-check.js.map +1 -0
  9. package/dist/checkers/preview-evidence.d.ts +26 -0
  10. package/dist/checkers/preview-evidence.d.ts.map +1 -0
  11. package/dist/checkers/preview-evidence.js +57 -0
  12. package/dist/checkers/preview-evidence.js.map +1 -0
  13. package/dist/checkers/preview-pin.d.ts +16 -0
  14. package/dist/checkers/preview-pin.d.ts.map +1 -0
  15. package/dist/checkers/preview-pin.js +47 -0
  16. package/dist/checkers/preview-pin.js.map +1 -0
  17. package/dist/checkers/preview-receipt.d.ts +7 -0
  18. package/dist/checkers/preview-receipt.d.ts.map +1 -0
  19. package/dist/checkers/preview-receipt.js +33 -0
  20. package/dist/checkers/preview-receipt.js.map +1 -0
  21. package/dist/checkers/preview-source-octokit.d.ts +4 -0
  22. package/dist/checkers/preview-source-octokit.d.ts.map +1 -0
  23. package/dist/checkers/preview-source-octokit.js +47 -0
  24. package/dist/checkers/preview-source-octokit.js.map +1 -0
  25. package/dist/checkers/preview-source.d.ts +35 -0
  26. package/dist/checkers/preview-source.d.ts.map +1 -0
  27. package/dist/checkers/preview-source.js +45 -0
  28. package/dist/checkers/preview-source.js.map +1 -0
  29. package/dist/checkers/preview-url-guard.d.ts +5 -0
  30. package/dist/checkers/preview-url-guard.d.ts.map +1 -0
  31. package/dist/checkers/preview-url-guard.js +84 -0
  32. package/dist/checkers/preview-url-guard.js.map +1 -0
  33. package/dist/checkers/preview-wait.d.ts +26 -0
  34. package/dist/checkers/preview-wait.d.ts.map +1 -0
  35. package/dist/checkers/preview-wait.js +43 -0
  36. package/dist/checkers/preview-wait.js.map +1 -0
  37. package/dist/config/config-lint.d.ts +1 -1
  38. package/dist/config/config-lint.d.ts.map +1 -1
  39. package/dist/config/config-lint.js +1 -1
  40. package/dist/config/config-lint.js.map +1 -1
  41. package/dist/config/config-schema-lint.d.ts +11 -0
  42. package/dist/config/config-schema-lint.d.ts.map +1 -1
  43. package/dist/config/config-schema-lint.js +38 -0
  44. package/dist/config/config-schema-lint.js.map +1 -1
  45. package/dist/config/example.d.ts.map +1 -1
  46. package/dist/config/example.js +1 -0
  47. package/dist/config/example.js.map +1 -1
  48. package/dist/config/index.d.ts +1 -0
  49. package/dist/config/index.d.ts.map +1 -1
  50. package/dist/config/index.js +6 -1
  51. package/dist/config/index.js.map +1 -1
  52. package/dist/config/optional-sections.d.ts +22 -0
  53. package/dist/config/optional-sections.d.ts.map +1 -1
  54. package/dist/config/optional-sections.js +7 -1
  55. package/dist/config/optional-sections.js.map +1 -1
  56. package/dist/config/preview-section.d.ts +49 -0
  57. package/dist/config/preview-section.d.ts.map +1 -0
  58. package/dist/config/preview-section.js +72 -0
  59. package/dist/config/preview-section.js.map +1 -0
  60. package/dist/config/repo.d.ts +22 -0
  61. package/dist/config/repo.d.ts.map +1 -1
  62. package/dist/config/size-gate.d.ts +13 -2
  63. package/dist/config/size-gate.d.ts.map +1 -1
  64. package/dist/config/size-gate.js +45 -3
  65. package/dist/config/size-gate.js.map +1 -1
  66. package/dist/daemon/execution-config.d.ts +22 -0
  67. package/dist/daemon/execution-config.d.ts.map +1 -1
  68. package/dist/daemon/run-runtime.d.ts +22 -0
  69. package/dist/daemon/run-runtime.d.ts.map +1 -1
  70. package/dist/fakes/fake-github.d.ts +18 -0
  71. package/dist/fakes/fake-github.d.ts.map +1 -0
  72. package/dist/fakes/fake-github.js +28 -0
  73. package/dist/fakes/fake-github.js.map +1 -0
  74. package/dist/internal.d.ts +5 -2
  75. package/dist/internal.d.ts.map +1 -1
  76. package/dist/internal.js +5 -2
  77. package/dist/internal.js.map +1 -1
  78. package/dist/kpis/tier-demotion.d.ts +42 -0
  79. package/dist/kpis/tier-demotion.d.ts.map +1 -0
  80. package/dist/kpis/tier-demotion.js +121 -0
  81. package/dist/kpis/tier-demotion.js.map +1 -0
  82. package/dist/phases/check.d.ts +2 -0
  83. package/dist/phases/check.d.ts.map +1 -1
  84. package/dist/phases/check.js +1 -0
  85. package/dist/phases/check.js.map +1 -1
  86. package/dist/phases/environment-release.d.ts.map +1 -1
  87. package/dist/phases/environment-release.js +6 -0
  88. package/dist/phases/environment-release.js.map +1 -1
  89. package/dist/phases/ship-preview.d.ts +18 -0
  90. package/dist/phases/ship-preview.d.ts.map +1 -0
  91. package/dist/phases/ship-preview.js +38 -0
  92. package/dist/phases/ship-preview.js.map +1 -0
  93. package/dist/phases/ship.d.ts +6 -1
  94. package/dist/phases/ship.d.ts.map +1 -1
  95. package/dist/phases/ship.js +33 -4
  96. package/dist/phases/ship.js.map +1 -1
  97. package/dist/public-api-keys.d.ts.map +1 -1
  98. package/dist/public-api-keys.js +2 -0
  99. package/dist/public-api-keys.js.map +1 -1
  100. package/dist/review/marked-block.d.ts +6 -0
  101. package/dist/review/marked-block.d.ts.map +1 -0
  102. package/dist/review/marked-block.js +22 -0
  103. package/dist/review/marked-block.js.map +1 -0
  104. package/dist/review/risk-receipt.d.ts.map +1 -1
  105. package/dist/review/risk-receipt.js +2 -19
  106. package/dist/review/risk-receipt.js.map +1 -1
  107. package/dist/run/ci-rework-loop.d.ts +3 -1
  108. package/dist/run/ci-rework-loop.d.ts.map +1 -1
  109. package/dist/run/ci-rework-loop.js +150 -136
  110. package/dist/run/ci-rework-loop.js.map +1 -1
  111. package/dist/run/ci-rework-round.d.ts +41 -0
  112. package/dist/run/ci-rework-round.d.ts.map +1 -0
  113. package/dist/run/ci-rework-round.js +60 -0
  114. package/dist/run/ci-rework-round.js.map +1 -0
  115. package/dist/run/ci-rework-test-helpers.d.ts +35 -0
  116. package/dist/run/ci-rework-test-helpers.d.ts.map +1 -0
  117. package/dist/run/ci-rework-test-helpers.js +120 -0
  118. package/dist/run/ci-rework-test-helpers.js.map +1 -0
  119. package/dist/run/resume-context.d.ts +28 -0
  120. package/dist/run/resume-context.d.ts.map +1 -1
  121. package/dist/run/resume-context.js +48 -3
  122. package/dist/run/resume-context.js.map +1 -1
  123. package/dist/run/run-issue.d.ts.map +1 -1
  124. package/dist/run/run-issue.js +5 -1
  125. package/dist/run/run-issue.js.map +1 -1
  126. package/dist/run/ship-park.d.ts.map +1 -1
  127. package/dist/run/ship-park.js +2 -0
  128. package/dist/run/ship-park.js.map +1 -1
  129. package/dist/testing.d.ts +2 -0
  130. package/dist/testing.d.ts.map +1 -1
  131. package/dist/testing.js +1 -0
  132. package/dist/testing.js.map +1 -1
  133. 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"}