@humanbased/crosscheck 0.14.0 → 0.15.0-beta.103

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 (145) hide show
  1. package/README.md +147 -4
  2. package/crosscheck.config.example.yml +3 -1
  3. package/dist/__tests__/backtrace.test.js +1 -1
  4. package/dist/__tests__/backtrace.test.js.map +1 -1
  5. package/dist/__tests__/durations.test.js +5 -1
  6. package/dist/__tests__/durations.test.js.map +1 -1
  7. package/dist/__tests__/fix.test.js +48 -1
  8. package/dist/__tests__/fix.test.js.map +1 -1
  9. package/dist/__tests__/kickass.test.js +362 -69
  10. package/dist/__tests__/kickass.test.js.map +1 -1
  11. package/dist/__tests__/optimize.test.js +3 -3
  12. package/dist/__tests__/optimize.test.js.map +1 -1
  13. package/dist/__tests__/pr-picker.test.js +8 -7
  14. package/dist/__tests__/pr-picker.test.js.map +1 -1
  15. package/dist/__tests__/pr-status.test.js +41 -20
  16. package/dist/__tests__/pr-status.test.js.map +1 -1
  17. package/dist/__tests__/pr-workflow-state.test.d.ts +2 -0
  18. package/dist/__tests__/pr-workflow-state.test.d.ts.map +1 -0
  19. package/dist/__tests__/pr-workflow-state.test.js +184 -0
  20. package/dist/__tests__/pr-workflow-state.test.js.map +1 -0
  21. package/dist/__tests__/review-models.test.js +1 -0
  22. package/dist/__tests__/review-models.test.js.map +1 -1
  23. package/dist/__tests__/run.test.d.ts +2 -0
  24. package/dist/__tests__/run.test.d.ts.map +1 -0
  25. package/dist/__tests__/run.test.js +81 -0
  26. package/dist/__tests__/run.test.js.map +1 -0
  27. package/dist/__tests__/runner.test.js +117 -1
  28. package/dist/__tests__/runner.test.js.map +1 -1
  29. package/dist/__tests__/smart-switch.test.js +1 -1
  30. package/dist/__tests__/smart-switch.test.js.map +1 -1
  31. package/dist/__tests__/tier-timeouts.test.d.ts +2 -0
  32. package/dist/__tests__/tier-timeouts.test.d.ts.map +1 -0
  33. package/dist/__tests__/tier-timeouts.test.js +23 -0
  34. package/dist/__tests__/tier-timeouts.test.js.map +1 -0
  35. package/dist/__tests__/webhook.test.d.ts +2 -0
  36. package/dist/__tests__/webhook.test.d.ts.map +1 -0
  37. package/dist/__tests__/webhook.test.js +197 -0
  38. package/dist/__tests__/webhook.test.js.map +1 -0
  39. package/dist/cli.js +38 -5
  40. package/dist/cli.js.map +1 -1
  41. package/dist/commands/detect-step.d.ts +5 -0
  42. package/dist/commands/detect-step.d.ts.map +1 -0
  43. package/dist/commands/detect-step.js +124 -0
  44. package/dist/commands/detect-step.js.map +1 -0
  45. package/dist/commands/kickass.d.ts +18 -10
  46. package/dist/commands/kickass.d.ts.map +1 -1
  47. package/dist/commands/kickass.js +234 -63
  48. package/dist/commands/kickass.js.map +1 -1
  49. package/dist/commands/review.d.ts.map +1 -1
  50. package/dist/commands/review.js +14 -5
  51. package/dist/commands/review.js.map +1 -1
  52. package/dist/commands/run.d.ts +16 -1
  53. package/dist/commands/run.d.ts.map +1 -1
  54. package/dist/commands/run.js +347 -44
  55. package/dist/commands/run.js.map +1 -1
  56. package/dist/commands/serve.d.ts.map +1 -1
  57. package/dist/commands/serve.js +41 -3
  58. package/dist/commands/serve.js.map +1 -1
  59. package/dist/commands/watch.d.ts.map +1 -1
  60. package/dist/commands/watch.js +200 -6
  61. package/dist/commands/watch.js.map +1 -1
  62. package/dist/config/schema.d.ts +52 -0
  63. package/dist/config/schema.d.ts.map +1 -1
  64. package/dist/config/schema.js +24 -1
  65. package/dist/config/schema.js.map +1 -1
  66. package/dist/github/client.d.ts +40 -1
  67. package/dist/github/client.d.ts.map +1 -1
  68. package/dist/github/client.js +69 -9
  69. package/dist/github/client.js.map +1 -1
  70. package/dist/github/review-status.d.ts.map +1 -1
  71. package/dist/github/review-status.js +7 -4
  72. package/dist/github/review-status.js.map +1 -1
  73. package/dist/github/webhook.d.ts +25 -1
  74. package/dist/github/webhook.d.ts.map +1 -1
  75. package/dist/github/webhook.js +37 -1
  76. package/dist/github/webhook.js.map +1 -1
  77. package/dist/lib/annotation.d.ts +4 -0
  78. package/dist/lib/annotation.d.ts.map +1 -1
  79. package/dist/lib/annotation.js +5 -1
  80. package/dist/lib/annotation.js.map +1 -1
  81. package/dist/lib/comment-bodies.d.ts.map +1 -1
  82. package/dist/lib/comment-bodies.js +3 -2
  83. package/dist/lib/comment-bodies.js.map +1 -1
  84. package/dist/lib/durations.d.ts.map +1 -1
  85. package/dist/lib/durations.js +5 -3
  86. package/dist/lib/durations.js.map +1 -1
  87. package/dist/lib/logger.d.ts +3 -0
  88. package/dist/lib/logger.d.ts.map +1 -1
  89. package/dist/lib/logger.js +29 -3
  90. package/dist/lib/logger.js.map +1 -1
  91. package/dist/lib/pr-picker.d.ts.map +1 -1
  92. package/dist/lib/pr-picker.js +5 -1
  93. package/dist/lib/pr-picker.js.map +1 -1
  94. package/dist/lib/pr-status.d.ts +4 -3
  95. package/dist/lib/pr-status.d.ts.map +1 -1
  96. package/dist/lib/pr-status.js +19 -13
  97. package/dist/lib/pr-status.js.map +1 -1
  98. package/dist/lib/pr-workflow-state.d.ts +68 -0
  99. package/dist/lib/pr-workflow-state.d.ts.map +1 -0
  100. package/dist/lib/pr-workflow-state.js +328 -0
  101. package/dist/lib/pr-workflow-state.js.map +1 -0
  102. package/dist/lib/product.d.ts +3 -0
  103. package/dist/lib/product.d.ts.map +1 -0
  104. package/dist/lib/product.js +5 -0
  105. package/dist/lib/product.js.map +1 -0
  106. package/dist/lib/repo-picker.d.ts +1 -0
  107. package/dist/lib/repo-picker.d.ts.map +1 -1
  108. package/dist/lib/repo-picker.js +50 -33
  109. package/dist/lib/repo-picker.js.map +1 -1
  110. package/dist/lib/runner.d.ts +19 -1
  111. package/dist/lib/runner.d.ts.map +1 -1
  112. package/dist/lib/runner.js +337 -54
  113. package/dist/lib/runner.js.map +1 -1
  114. package/dist/lib/smart-switch.js +1 -1
  115. package/dist/lib/smart-switch.js.map +1 -1
  116. package/dist/lib/vendor.d.ts +4 -0
  117. package/dist/lib/vendor.d.ts.map +1 -0
  118. package/dist/lib/vendor.js +14 -0
  119. package/dist/lib/vendor.js.map +1 -0
  120. package/dist/lib/workflow.d.ts +5 -0
  121. package/dist/lib/workflow.d.ts.map +1 -1
  122. package/dist/lib/workflow.js.map +1 -1
  123. package/dist/reviewers/claude.d.ts +3 -1
  124. package/dist/reviewers/claude.d.ts.map +1 -1
  125. package/dist/reviewers/claude.js +14 -9
  126. package/dist/reviewers/claude.js.map +1 -1
  127. package/dist/reviewers/codex.d.ts +1 -1
  128. package/dist/reviewers/codex.d.ts.map +1 -1
  129. package/dist/reviewers/codex.js +7 -10
  130. package/dist/reviewers/codex.js.map +1 -1
  131. package/dist/reviewers/conflict-resolve.d.ts +1 -1
  132. package/dist/reviewers/conflict-resolve.d.ts.map +1 -1
  133. package/dist/reviewers/conflict-resolve.js +3 -2
  134. package/dist/reviewers/conflict-resolve.js.map +1 -1
  135. package/dist/reviewers/fix.d.ts +5 -1
  136. package/dist/reviewers/fix.d.ts.map +1 -1
  137. package/dist/reviewers/fix.js +68 -2
  138. package/dist/reviewers/fix.js.map +1 -1
  139. package/dist/reviewers/tier-timeouts.d.ts +5 -0
  140. package/dist/reviewers/tier-timeouts.d.ts.map +1 -0
  141. package/dist/reviewers/tier-timeouts.js +14 -0
  142. package/dist/reviewers/tier-timeouts.js.map +1 -0
  143. package/get-started.md +56 -5
  144. package/get-started.zh.md +7 -1
  145. package/package.json +1 -1
@@ -2,27 +2,136 @@ import { mkdtempSync, rmSync } from 'fs';
2
2
  import { tmpdir } from 'os';
3
3
  import { join } from 'path';
4
4
  import chalk from 'chalk';
5
+ import { parseDuration } from '../lib/durations.js';
5
6
  import ora from 'ora';
6
7
  import { createGithubClient } from '../github/client.js';
8
+ import { fetchStepHistory, identifyNextWorkflowStep } from '../lib/pr-workflow-state.js';
7
9
  import { detectOriginFull, assignReviewer } from '../github/detector.js';
8
10
  import { loadConfig, getGithubToken } from '../config/loader.js';
11
+ import { normalizeVendor, VENDOR_ALIAS_HINT } from '../lib/vendor.js';
9
12
  import { initLogger, log as fileLog, logError } from '../lib/logger.js';
10
13
  import { runWorkflow } from '../lib/runner.js';
11
- import { loadWorkflow } from '../lib/workflow.js';
14
+ import { DEFAULT_RECHECK_INSTRUCTIONS, loadWorkflow } from '../lib/workflow.js';
12
15
  import { formatVerdict } from '../lib/verdict.js';
13
16
  import { clonePRForReview } from '../lib/clone.js';
14
17
  import { acquirePRLock, releasePRLock } from '../lib/pr-lock.js';
15
18
  import { checkRemoteLock, acquireRemoteLock, releaseRemoteLock, startRemoteLockHeartbeat } from '../github/review-status.js';
19
+ function meetsCrazyStopCondition(verdict, mode) {
20
+ if (verdict === null)
21
+ return false;
22
+ if (mode === 'crazy')
23
+ return verdict === 'APPROVE';
24
+ // halfcrazy: any non-BLOCK verdict (APPROVE or NEEDS_WORK) is acceptable
25
+ return verdict !== 'BLOCK';
26
+ }
16
27
  function parsePRUrl(url) {
17
28
  const m = url.match(/github\.com\/([^/]+)\/([^/]+)\/pull\/(\d+)/);
18
29
  if (!m)
19
30
  return null;
20
31
  return { owner: m[1], repo: m[2], number: parseInt(m[3], 10) };
21
32
  }
33
+ function applyStepVendorOverrides(steps, assignedReviewer, overrides = {}) {
34
+ const reviewVendor = overrides.vendor ?? overrides.reviewer ?? assignedReviewer;
35
+ const fixVendor = overrides.vendor ?? overrides.fixer;
36
+ return steps.map(s => {
37
+ if (s.type === 'review' || s.type === 'recheck')
38
+ return { ...s, reviewer: reviewVendor };
39
+ if (s.type === 'fix' && fixVendor !== undefined)
40
+ return { ...s, reviewer: fixVendor };
41
+ if (s.type === 'conflict-resolve' && overrides.vendor !== undefined)
42
+ return { ...s, reviewer: overrides.vendor };
43
+ return s;
44
+ });
45
+ }
46
+ function synthesizeRecheckStep(allSteps, assignedReviewer) {
47
+ const reviewStep = allSteps.find(s => s.type === 'review');
48
+ if (!reviewStep)
49
+ return null;
50
+ return {
51
+ ...reviewStep,
52
+ name: 'recheck',
53
+ type: 'recheck',
54
+ reviewer: assignedReviewer,
55
+ when: undefined,
56
+ max_rounds: reviewStep.max_rounds,
57
+ instructions: DEFAULT_RECHECK_INSTRUCTIONS,
58
+ };
59
+ }
60
+ function appendAfterLastFix(steps, step) {
61
+ const lastFix = steps.map(s => s.type).lastIndexOf('fix');
62
+ if (lastFix === -1)
63
+ return [...steps, step];
64
+ return [...steps.slice(0, lastFix + 1), step, ...steps.slice(lastFix + 1)];
65
+ }
66
+ export function resolveWorkflowSteps(allSteps, stepFilter, assignedReviewer, overrides = {}) {
67
+ const selected = stepFilter
68
+ ? allSteps.filter(s => stepFilter.includes(s.type) || stepFilter.includes(s.name))
69
+ : allSteps;
70
+ let steps = applyStepVendorOverrides(selected, assignedReviewer, overrides);
71
+ if (stepFilter?.includes('recheck') && !steps.some(s => s.type === 'recheck')) {
72
+ const synthetic = synthesizeRecheckStep(allSteps, assignedReviewer);
73
+ if (synthetic)
74
+ steps = appendAfterLastFix(steps, synthetic);
75
+ }
76
+ return steps;
77
+ }
78
+ export function buildFixRecheckSteps(steps, allSteps, assignedReviewer, overrides = {}) {
79
+ const selectedFixRecheckSteps = steps.filter(s => s.type === 'fix' || s.type === 'recheck');
80
+ const sourceSteps = selectedFixRecheckSteps.length > 0
81
+ ? selectedFixRecheckSteps
82
+ : applyStepVendorOverrides(allSteps.filter(s => s.type === 'fix' || s.type === 'recheck'), assignedReviewer, overrides);
83
+ let fixRecheckSteps = [...sourceSteps];
84
+ if (!fixRecheckSteps.some(s => s.type === 'fix')) {
85
+ const fixStep = allSteps.find(s => s.type === 'fix');
86
+ if (fixStep)
87
+ fixRecheckSteps = [fixStep, ...fixRecheckSteps];
88
+ }
89
+ if (!fixRecheckSteps.some(s => s.type === 'recheck')) {
90
+ const synthetic = synthesizeRecheckStep(allSteps, assignedReviewer);
91
+ if (synthetic)
92
+ fixRecheckSteps = appendAfterLastFix(fixRecheckSteps, synthetic);
93
+ }
94
+ return fixRecheckSteps;
95
+ }
96
+ function printRoundModeBanner(mode) {
97
+ const BLINK = '\x1b[5m';
98
+ const RESET = '\x1b[0m';
99
+ if (mode === 'crazy') {
100
+ const label = chalk.bold.white.bgRed(' CRAZY ') + ' ' + chalk.red.bold('MODE');
101
+ console.log(`\n ${label} ${BLINK}🔥🔥${RESET} ${chalk.dim('fix→recheck until APPROVE')}`);
102
+ console.log(` ${chalk.yellow('⚠')} ${chalk.yellow('Token consumption may skyrocket 🚀 — use with caution.')}\n`);
103
+ }
104
+ else {
105
+ const label = chalk.bold.yellow('half') + chalk.bold.white.bgRed('-CRAZY') + ' ' + chalk.red.bold('MODE');
106
+ console.log(`\n ${label} ${BLINK}🔥${RESET} ${chalk.dim('fix→recheck until not BLOCK')}`);
107
+ console.log(` ${chalk.yellow('⚠')} ${chalk.yellow('Token consumption may skyrocket 🚀 — use with caution.')}\n`);
108
+ }
109
+ }
22
110
  export async function runRun(prUrl, opts = {}) {
111
+ if (opts.roundMode && opts.dryRun) {
112
+ console.error(chalk.red(`✗ --${opts.roundMode} and --dry-run are mutually exclusive`));
113
+ process.exit(1);
114
+ }
115
+ if (opts.roundMode)
116
+ printRoundModeBanner(opts.roundMode);
117
+ // crazy/halfcrazy (or --no-timeout) lift all constraints including the reviewer timeout (0 = no cap).
118
+ // Otherwise parse the user-supplied --timeout value; undefined keeps each reviewer's default.
119
+ let reviewerTimeoutMs;
120
+ if (opts.roundMode || opts.noTimeout) {
121
+ reviewerTimeoutMs = 0;
122
+ }
123
+ else if (opts.timeout) {
124
+ try {
125
+ reviewerTimeoutMs = parseDuration(opts.timeout);
126
+ }
127
+ catch {
128
+ console.error(chalk.red(`✗ Invalid --timeout value "${opts.timeout}". Use a duration like 300s or 10m.`));
129
+ process.exit(1);
130
+ }
131
+ }
23
132
  const config = loadConfig(opts.config);
24
133
  initLogger(config.logs);
25
- fileLog({ level: 'info', event: 'session_start', command: 'run', pr_url: prUrl });
134
+ fileLog({ level: 'info', event: 'session_start', command: 'run', pr_url: prUrl, ...(opts.roundMode && { round_mode: opts.roundMode }) });
26
135
  let token;
27
136
  try {
28
137
  token = getGithubToken();
@@ -48,35 +157,118 @@ export async function runRun(prUrl, opts = {}) {
48
157
  }
49
158
  spinner.succeed(`PR #${number}: ${prData.title}`);
50
159
  fileLog({ level: 'info', event: 'pr_received', repo: `${owner}/${repo}`, pr: number, sha: prData.head.sha });
51
- // Resolve origin and reviewer
160
+ // Early signal handler: covers the window between pr_received and the full
161
+ // onSignal handler installed below (after acquirePRLock + acquireRemoteLock).
162
+ // Without this, a SIGINT/SIGTERM during origin detection or step resolution
163
+ // exits Node silently with no fileLog event.
164
+ const earlySignalHandler = (signal) => {
165
+ fileLog({ level: 'info', event: 'session_killed', repo: `${owner}/${repo}`, pr: number, phase: 'setup', signal });
166
+ process.exit(signal === 'SIGTERM' ? 143 : 130);
167
+ };
168
+ process.once('SIGINT', earlySignalHandler);
169
+ process.once('SIGTERM', earlySignalHandler);
170
+ // Resolve origin plus any explicit per-step vendor overrides.
171
+ const normalizedReviewer = normalizeVendor(opts.reviewer);
172
+ const normalizedFixer = normalizeVendor(opts.fixer);
173
+ const normalizedVendor = normalizeVendor(opts.vendor);
174
+ if (opts.reviewer !== undefined && normalizedReviewer === null) {
175
+ console.error(chalk.red(`✗ Unknown reviewer "${opts.reviewer}". Expected: ${VENDOR_ALIAS_HINT}`));
176
+ process.exit(1);
177
+ }
178
+ if (opts.fixer !== undefined && normalizedFixer === null) {
179
+ console.error(chalk.red(`✗ Unknown fixer "${opts.fixer}". Expected: ${VENDOR_ALIAS_HINT}`));
180
+ process.exit(1);
181
+ }
182
+ if (opts.vendor !== undefined && normalizedVendor === null) {
183
+ console.error(chalk.red(`✗ Unknown vendor "${opts.vendor}". Expected: ${VENDOR_ALIAS_HINT}`));
184
+ process.exit(1);
185
+ }
186
+ if (normalizedReviewer !== null && normalizedVendor !== null && normalizedReviewer !== normalizedVendor) {
187
+ console.error(chalk.red(`✗ --reviewer and --vendor disagree (${normalizedReviewer} vs ${normalizedVendor})`));
188
+ process.exit(1);
189
+ }
190
+ if (normalizedFixer !== null && normalizedVendor !== null && normalizedFixer !== normalizedVendor) {
191
+ console.error(chalk.red(`✗ --fixer and --vendor disagree (${normalizedFixer} vs ${normalizedVendor})`));
192
+ process.exit(1);
193
+ }
52
194
  let origin;
53
- if (opts.reviewer === 'codex' || opts.reviewer === 'claude') {
195
+ if (normalizedReviewer !== null) {
54
196
  // --reviewer forces the origin to the opposite vendor (cross-vendor semantics)
55
- origin = opts.reviewer === 'codex' ? 'claude' : 'codex';
56
- console.log(chalk.dim(` reviewer: ${opts.reviewer} (forced)`));
197
+ origin = normalizedReviewer === 'codex' ? 'claude' : 'codex';
198
+ console.log(chalk.dim(` reviewer: ${normalizedReviewer} (forced)`));
57
199
  }
58
200
  else {
59
201
  const { origin: detectedOrigin, method } = await detectOriginFull(prData.body ?? '', prData.head.ref, owner, repo, number, config, token, prData.user?.login);
60
202
  origin = detectedOrigin;
61
203
  console.log(chalk.dim(` PR origin: ${origin} (via ${method})`));
62
204
  }
63
- const assignedReviewer = opts.reviewer === 'codex' || opts.reviewer === 'claude'
64
- ? opts.reviewer
65
- : await assignReviewer(origin, config);
205
+ const forcedReviewer = normalizedVendor ?? normalizedReviewer;
206
+ const assignedReviewer = forcedReviewer ?? await assignReviewer(origin, config);
66
207
  if (!assignedReviewer) {
67
- console.log(chalk.dim(` no reviewer assigned for origin "${origin}" — use --reviewer codex|claude to force`));
208
+ console.log(chalk.dim(` no reviewer assigned for origin "${origin}" — use --reviewer ${VENDOR_ALIAS_HINT} to force`));
68
209
  return;
69
210
  }
70
- if (!opts.reviewer) {
211
+ if (normalizedVendor !== null) {
212
+ console.log(chalk.dim(` vendor: ${assignedReviewer} (forced for all workflow steps)`));
213
+ }
214
+ else if (normalizedReviewer === null) {
71
215
  console.log(chalk.dim(` assigned reviewer: ${assignedReviewer}`));
72
216
  }
73
- // Resolve steps filter from workflow.yml by type if --steps is specified, then pin the
74
- // resolved reviewer on every review/recheck step so runWorkflow doesn't re-derive it
217
+ if (normalizedFixer !== null && normalizedVendor === null) {
218
+ console.log(chalk.dim(` fixer: ${normalizedFixer} (forced for fix steps)`));
219
+ }
220
+ // Resolve steps — filter from workflow.yml by type if --steps is specified, then apply
221
+ // command-line vendor overrides so runWorkflow doesn't re-derive those step vendors.
75
222
  const allSteps = loadWorkflow(process.cwd());
76
- const stepFilter = opts.steps?.split(',').map(s => s.trim().toLowerCase());
77
- const filteredSteps = (stepFilter
78
- ? allSteps.filter(s => stepFilter.includes(s.type) || stepFilter.includes(s.name))
79
- : allSteps).map(s => s.type === 'review' || s.type === 'recheck' ? { ...s, reviewer: assignedReviewer } : s);
223
+ let stepFilter = opts.steps?.split(',').map(s => s.trim().toLowerCase());
224
+ let initialReviewComment = opts.initialReviewComment;
225
+ // When running without an explicit --steps flag, detect the next step from live
226
+ // PR comment history. When triggered by kickass the dispatch is intentionally
227
+ // one-step-at-a-time (watch owns continuation via webhooks). For all other
228
+ // triggers (direct user invocation, backtrace, etc.) run all remaining steps
229
+ // from the detected starting point so a standalone `ck run` still works end-to-end.
230
+ if (!opts.steps) {
231
+ try {
232
+ const history = await fetchStepHistory(owner, repo, number, token);
233
+ const nextResult = identifyNextWorkflowStep(history, allSteps, prData.head.sha);
234
+ if (nextResult.step === null) {
235
+ // Workflow already complete for this SHA
236
+ console.log(chalk.dim(' workflow already complete for this SHA — nothing to do'));
237
+ return;
238
+ }
239
+ if (opts.trigger === 'kickass') {
240
+ // One step only — watch picks up continuation via issue_comment / synchronize.
241
+ stepFilter = [nextResult.step.type];
242
+ console.log(chalk.dim(` detected next step: ${nextResult.step.type}`));
243
+ }
244
+ else if (nextResult.hasExistingReview && nextResult.step.type !== 'review') {
245
+ // Resume from the identified step and run all remaining steps.
246
+ const nextStepIdx = allSteps.findIndex(s => s.type === nextResult.step.type);
247
+ stepFilter = nextStepIdx >= 0
248
+ ? allSteps.slice(nextStepIdx).map(s => s.name)
249
+ : [nextResult.step.type];
250
+ console.log(chalk.dim(` existing review found — resuming from ${nextResult.step.type} step`));
251
+ }
252
+ if (nextResult.hasExistingReview && nextResult.step.type !== 'review') {
253
+ initialReviewComment = nextResult.reviewComment;
254
+ }
255
+ }
256
+ catch (err) {
257
+ if (opts.trigger === 'kickass') {
258
+ // Fail closed for kickass dispatches: running more steps than intended
259
+ // (full pipeline instead of one step) is worse than aborting. Re-throw
260
+ // so the subprocess exits non-zero and kickass records a retryable failure.
261
+ throw err;
262
+ }
263
+ /* best-effort for other triggers — fall through to normal review flow */
264
+ }
265
+ }
266
+ const stepVendorOverrides = {
267
+ ...(normalizedReviewer !== null && { reviewer: normalizedReviewer }),
268
+ ...(normalizedFixer !== null && { fixer: normalizedFixer }),
269
+ ...(normalizedVendor !== null && { vendor: normalizedVendor }),
270
+ };
271
+ const filteredSteps = resolveWorkflowSteps(allSteps, stepFilter, assignedReviewer, stepVendorOverrides);
80
272
  if (opts.dryRun) {
81
273
  console.log(chalk.dim(' dry-run: review will run but no comment will be posted; fix step skipped'));
82
274
  }
@@ -117,12 +309,39 @@ export async function runRun(prUrl, opts = {}) {
117
309
  // but if a signal fires mid-workflow we exit via process.exit and bypass
118
310
  // that finally, so the signal handler iterates this array too.
119
311
  const pushedShas = [];
312
+ const loopLockShas = [];
313
+ const rememberLoopLock = (lockSha) => {
314
+ if (!loopLockShas.includes(lockSha))
315
+ loopLockShas.push(lockSha);
316
+ };
317
+ const releaseRememberedLoopLock = async (lockSha, outcome) => {
318
+ const idx = loopLockShas.indexOf(lockSha);
319
+ if (idx !== -1)
320
+ loopLockShas.splice(idx, 1);
321
+ try {
322
+ await releaseRemoteLock(octokit, owner, repo, lockSha, outcome);
323
+ }
324
+ catch (err) {
325
+ rememberLoopLock(lockSha);
326
+ throw err;
327
+ }
328
+ };
329
+ const drainLoopLocks = async (outcome) => {
330
+ while (loopLockShas.length > 0) {
331
+ const s = loopLockShas.shift();
332
+ try {
333
+ await releaseRemoteLock(octokit, owner, repo, s, outcome);
334
+ }
335
+ catch { /* best-effort per sha */ }
336
+ }
337
+ };
120
338
  const onSignal = (signal) => {
121
339
  void (async () => {
122
340
  try {
123
341
  stopHeartbeat();
124
342
  if (!opts.dryRun && lockAttemptStarted) {
125
343
  await releaseRemoteLock(octokit, owner, repo, sha, 'failure');
344
+ await drainLoopLocks('failure');
126
345
  // Drain the shared array via shift() so the runner's finally (which
127
346
  // also drains via shift) doesn't double-release. Whichever loop
128
347
  // shifts a sha first owns its release; the other sees a shorter
@@ -152,6 +371,8 @@ export async function runRun(prUrl, opts = {}) {
152
371
  process.exit(signal === 'SIGTERM' ? 143 : 130);
153
372
  })();
154
373
  };
374
+ process.removeListener('SIGINT', earlySignalHandler);
375
+ process.removeListener('SIGTERM', earlySignalHandler);
155
376
  process.on('SIGINT', onSignal);
156
377
  process.on('SIGTERM', onSignal);
157
378
  try {
@@ -178,6 +399,7 @@ export async function runRun(prUrl, opts = {}) {
178
399
  const tmpDir = mkdtempSync(join(tmpdir(), 'crosscheck-run-'));
179
400
  acquiredTmpDir = tmpDir;
180
401
  const cloneSpinner = ora('Cloning repo...').start();
402
+ let workflowError;
181
403
  try {
182
404
  clonePRForReview({
183
405
  owner, repo, prNumber: number, baseRef: prData.base.ref,
@@ -188,54 +410,135 @@ export async function runRun(prUrl, opts = {}) {
188
410
  if (!opts.dryRun)
189
411
  stopHeartbeat = startRemoteLockHeartbeat(octokit, owner, repo, sha);
190
412
  let activeSpinner = ora('').start();
191
- const { verdict } = await runWorkflow({
192
- owner,
193
- repoName: repo,
194
- prNumber: number,
195
- pr,
196
- tmpDir,
197
- token,
198
- config,
199
- origin,
200
- reviewStart: Date.now(),
413
+ const sharedCtx = {
414
+ owner, repoName: repo, prNumber: number, token, config, origin,
201
415
  log: (msg) => { activeSpinner.stop(); console.log(msg); activeSpinner = ora('').start(); },
202
416
  onPhaseChange: (label) => { activeSpinner.text = label; },
203
417
  crosscheckShas: new Set(),
204
418
  pushedShas,
205
419
  dryRun: opts.dryRun,
420
+ // crazy/halfcrazy bypass per-step max_rounds; loop runs until stop condition or no-progress guard
421
+ overrideMaxRounds: opts.roundMode ? Infinity : undefined,
422
+ roundMode: opts.roundMode,
423
+ overrideTimeoutMs: reviewerTimeoutMs,
424
+ trigger: opts.trigger ?? 'run',
425
+ };
426
+ let workflowResult = await runWorkflow({
427
+ ...sharedCtx,
428
+ pr,
429
+ tmpDir,
430
+ reviewStart: Date.now(),
206
431
  steps: filteredSteps,
207
- initialReviewComment: opts.initialReviewComment,
432
+ initialReviewComment,
208
433
  });
434
+ let { verdict, fixAppliedCount } = workflowResult;
435
+ let latestReviewComment = workflowResult.latestReviewComment ?? initialReviewComment;
436
+ // Autonomous fix→recheck loop for --crazy / --halfcrazy
437
+ if (opts.roundMode) {
438
+ const mode = opts.roundMode;
439
+ const fixRecheckSteps = buildFixRecheckSteps(filteredSteps, allSteps, assignedReviewer, stepVendorOverrides);
440
+ let loopRound = 1;
441
+ let loopSha = sha;
442
+ // Continue when the verdict hasn't met the stop condition OR when the
443
+ // initial workflow applied fixes that still need a follow-up recheck.
444
+ // Without the fixAppliedCount clause, --half-crazy stops after a
445
+ // NEEDS_WORK review (which is its stop condition) even when the workflow's
446
+ // fix step already pushed a commit — leaving the new head unrechecked.
447
+ while (!meetsCrazyStopCondition(verdict, mode) || (fixAppliedCount !== undefined && fixAppliedCount > 0)) {
448
+ // No-progress guard: if fix ran but applied nothing, looping is futile
449
+ if (fixAppliedCount === 0) {
450
+ fileLog({ level: 'info', event: 'step_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'no_progress', mode, round: loopRound });
451
+ console.log(chalk.dim(` no progress in round ${loopRound} — stopping`));
452
+ break;
453
+ }
454
+ loopRound++;
455
+ console.log(chalk.dim(`\n round ${loopRound} previous verdict ${verdict ?? '--'} — continuing...`));
456
+ // Refresh head SHA so the remote lock targets the commit fix pushed.
457
+ // A review-only first round has no fix count and no new head yet; in
458
+ // that case continue on the existing lock so round 2 can actually run
459
+ // the synthesized fix/recheck follow-up.
460
+ const { data: freshPR } = await octokit.rest.pulls.get({ owner, repo, pull_number: number });
461
+ const freshSha = freshPR.head.sha;
462
+ const priorRoundRanFix = fixAppliedCount !== undefined;
463
+ if (freshSha === loopSha && priorRoundRanFix) {
464
+ // Head didn't advance — fix made no changes despite applied_count > 0 (edge case)
465
+ fileLog({ level: 'info', event: 'step_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'no_progress', mode, round: loopRound });
466
+ console.log(chalk.dim(` head SHA unchanged — no progress, stopping`));
467
+ break;
468
+ }
469
+ const acquiredLoopLock = freshSha !== loopSha;
470
+ if (acquiredLoopLock) {
471
+ loopSha = freshSha;
472
+ stopHeartbeat();
473
+ if (await checkRemoteLock(octokit, owner, repo, loopSha)) {
474
+ fileLog({ level: 'info', event: 'step_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'in_progress_remote', mode, round: loopRound });
475
+ console.log(chalk.yellow(`⚠ PR #${number} head ${loopSha.slice(0, 7)} is already locked — stopping loop`));
476
+ break;
477
+ }
478
+ rememberLoopLock(loopSha);
479
+ await acquireRemoteLock(octokit, owner, repo, loopSha);
480
+ stopHeartbeat = startRemoteLockHeartbeat(octokit, owner, repo, loopSha);
481
+ }
482
+ const loopPR = { ...pr, head: { ...pr.head, sha: loopSha } };
483
+ workflowResult = await runWorkflow({
484
+ ...sharedCtx,
485
+ pr: loopPR,
486
+ tmpDir,
487
+ reviewStart: Date.now(),
488
+ steps: fixRecheckSteps,
489
+ initialReviewComment: latestReviewComment,
490
+ round: loopRound,
491
+ });
492
+ ({ verdict, fixAppliedCount } = workflowResult);
493
+ latestReviewComment = workflowResult.latestReviewComment ?? latestReviewComment;
494
+ if (acquiredLoopLock)
495
+ await releaseRememberedLoopLock(loopSha, 'success');
496
+ // Fix step was structurally skipped (unsupported vendor, fork PR, commit limit, etc.) —
497
+ // the head won't advance so looping cannot make progress.
498
+ if (fixAppliedCount === undefined) {
499
+ fileLog({ level: 'info', event: 'step_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'no_fix_step', mode, round: loopRound });
500
+ console.log(chalk.dim(` fix step did not run in round ${loopRound} — stopping`));
501
+ break;
502
+ }
503
+ // Explicit stop when the recheck satisfies the condition, so the
504
+ // fixAppliedCount > 0 clause in the while predicate doesn't cause an
505
+ // unnecessary extra fix/recheck round against an already-approving verdict.
506
+ if (meetsCrazyStopCondition(verdict, mode)) {
507
+ fileLog({ level: 'info', event: 'step_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'stop_condition_met', mode, round: loopRound });
508
+ console.log(` round ${loopRound} verdict ${verdict ?? '--'} — done`);
509
+ break;
510
+ }
511
+ console.log(` round ${loopRound} verdict ${verdict ?? '--'} — continuing...`);
512
+ }
513
+ }
209
514
  activeSpinner.stop();
210
515
  console.log(`\n ${formatVerdict(verdict)}`);
211
- if (!opts.dryRun) {
212
- console.log(chalk.green(`\n✓ Workflow complete — ${prUrl}\n`));
213
- }
214
- else {
215
- console.log(chalk.dim(`\n dry-run complete — no changes posted\n`));
216
- }
217
- stopHeartbeat();
218
- if (!opts.dryRun)
219
- await releaseRemoteLock(octokit, owner, repo, sha, 'success');
516
+ console.log(chalk.green(`\n✓ Workflow complete — ${prUrl}\n`));
220
517
  }
221
518
  catch (err) {
222
- stopHeartbeat();
223
- if (!opts.dryRun)
224
- await releaseRemoteLock(octokit, owner, repo, sha, 'failure');
519
+ workflowError = err;
225
520
  logError({ repo: `${owner}/${repo}`, pr: number, phase: 'run' }, err);
226
521
  console.error(chalk.red(`\n✗ ${err instanceof Error ? err.message : String(err)}\n`));
227
- releasePRLock(owner, repo, number, sha);
228
- if (acquiredTmpDir)
229
- rmSync(acquiredTmpDir, { force: true, recursive: true });
230
- process.exit(2);
231
522
  }
232
523
  finally {
524
+ stopHeartbeat();
525
+ if (!opts.dryRun && lockAttemptStarted) {
526
+ try {
527
+ await releaseRemoteLock(octokit, owner, repo, sha, workflowError ? 'failure' : 'success');
528
+ }
529
+ catch { /* best-effort */ }
530
+ await drainLoopLocks(workflowError ? 'failure' : 'success');
531
+ }
233
532
  releasePRLock(owner, repo, number, sha);
234
533
  if (acquiredTmpDir)
235
534
  rmSync(acquiredTmpDir, { force: true, recursive: true });
236
535
  }
536
+ if (workflowError)
537
+ process.exit(2);
237
538
  }
238
539
  finally {
540
+ process.removeListener('SIGINT', earlySignalHandler);
541
+ process.removeListener('SIGTERM', earlySignalHandler);
239
542
  process.removeListener('SIGINT', onSignal);
240
543
  process.removeListener('SIGTERM', onSignal);
241
544
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AA6QA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAsB,QAAQ,CAAC,IAAI,GAAE,SAAc,iBAqMlD"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAmTA,MAAM,WAAW,SAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,wBAAsB,QAAQ,CAAC,IAAI,GAAE,SAAc,iBAqMlD"}