@humanbased/crosscheck 1.6.0-beta.8 → 1.6.1-beta.0

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 (108) hide show
  1. package/README.md +2 -0
  2. package/crosscheck.config.example.yml +17 -4
  3. package/dist/__tests__/board.test.js +68 -30
  4. package/dist/__tests__/board.test.js.map +1 -1
  5. package/dist/__tests__/lock-ownership.test.d.ts +2 -0
  6. package/dist/__tests__/lock-ownership.test.d.ts.map +1 -0
  7. package/dist/__tests__/lock-ownership.test.js +167 -0
  8. package/dist/__tests__/lock-ownership.test.js.map +1 -0
  9. package/dist/__tests__/optimize.test.js +4 -3
  10. package/dist/__tests__/optimize.test.js.map +1 -1
  11. package/dist/__tests__/repository-cache.test.d.ts +2 -0
  12. package/dist/__tests__/repository-cache.test.d.ts.map +1 -0
  13. package/dist/__tests__/repository-cache.test.js +91 -0
  14. package/dist/__tests__/repository-cache.test.js.map +1 -0
  15. package/dist/__tests__/repository-guidance.test.js +1 -1
  16. package/dist/__tests__/repository-guidance.test.js.map +1 -1
  17. package/dist/__tests__/review-command-strategy.test.d.ts +2 -0
  18. package/dist/__tests__/review-command-strategy.test.d.ts.map +1 -0
  19. package/dist/__tests__/review-command-strategy.test.js +194 -0
  20. package/dist/__tests__/review-command-strategy.test.js.map +1 -0
  21. package/dist/__tests__/review-efficiency-config.test.d.ts +2 -0
  22. package/dist/__tests__/review-efficiency-config.test.d.ts.map +1 -0
  23. package/dist/__tests__/review-efficiency-config.test.js +16 -0
  24. package/dist/__tests__/review-efficiency-config.test.js.map +1 -0
  25. package/dist/__tests__/review-memory.test.d.ts +2 -0
  26. package/dist/__tests__/review-memory.test.d.ts.map +1 -0
  27. package/dist/__tests__/review-memory.test.js +252 -0
  28. package/dist/__tests__/review-memory.test.js.map +1 -0
  29. package/dist/__tests__/review-models.test.js +1 -0
  30. package/dist/__tests__/review-models.test.js.map +1 -1
  31. package/dist/__tests__/review-strategy.test.js +78 -3
  32. package/dist/__tests__/review-strategy.test.js.map +1 -1
  33. package/dist/__tests__/vendor-error-summary.test.d.ts +2 -0
  34. package/dist/__tests__/vendor-error-summary.test.d.ts.map +1 -0
  35. package/dist/__tests__/vendor-error-summary.test.js +74 -0
  36. package/dist/__tests__/vendor-error-summary.test.js.map +1 -0
  37. package/dist/__tests__/watch-concurrency.test.d.ts +2 -0
  38. package/dist/__tests__/watch-concurrency.test.d.ts.map +1 -0
  39. package/dist/__tests__/watch-concurrency.test.js +53 -0
  40. package/dist/__tests__/watch-concurrency.test.js.map +1 -0
  41. package/dist/cli.js +18 -2
  42. package/dist/cli.js.map +1 -1
  43. package/dist/commands/onboard.js +2 -2
  44. package/dist/commands/onboard.js.map +1 -1
  45. package/dist/commands/review.d.ts +3 -1
  46. package/dist/commands/review.d.ts.map +1 -1
  47. package/dist/commands/review.js +146 -7
  48. package/dist/commands/review.js.map +1 -1
  49. package/dist/commands/run.d.ts.map +1 -1
  50. package/dist/commands/run.js +24 -6
  51. package/dist/commands/run.js.map +1 -1
  52. package/dist/commands/watch.d.ts +3 -0
  53. package/dist/commands/watch.d.ts.map +1 -1
  54. package/dist/commands/watch.js +170 -25
  55. package/dist/commands/watch.js.map +1 -1
  56. package/dist/config/schema.d.ts +27 -0
  57. package/dist/config/schema.d.ts.map +1 -1
  58. package/dist/config/schema.js +12 -1
  59. package/dist/config/schema.js.map +1 -1
  60. package/dist/github/review-status.d.ts +33 -0
  61. package/dist/github/review-status.d.ts.map +1 -1
  62. package/dist/github/review-status.js +94 -9
  63. package/dist/github/review-status.js.map +1 -1
  64. package/dist/lib/board.d.ts +1 -0
  65. package/dist/lib/board.d.ts.map +1 -1
  66. package/dist/lib/board.js +42 -37
  67. package/dist/lib/board.js.map +1 -1
  68. package/dist/lib/clone.d.ts +3 -0
  69. package/dist/lib/clone.d.ts.map +1 -1
  70. package/dist/lib/clone.js +21 -1
  71. package/dist/lib/clone.js.map +1 -1
  72. package/dist/lib/pr-lock.d.ts +37 -1
  73. package/dist/lib/pr-lock.d.ts.map +1 -1
  74. package/dist/lib/pr-lock.js +176 -29
  75. package/dist/lib/pr-lock.js.map +1 -1
  76. package/dist/lib/pr-workflow-state.d.ts +2 -0
  77. package/dist/lib/pr-workflow-state.d.ts.map +1 -1
  78. package/dist/lib/pr-workflow-state.js +15 -0
  79. package/dist/lib/pr-workflow-state.js.map +1 -1
  80. package/dist/lib/repository-cache.d.ts +18 -0
  81. package/dist/lib/repository-cache.d.ts.map +1 -0
  82. package/dist/lib/repository-cache.js +125 -0
  83. package/dist/lib/repository-cache.js.map +1 -0
  84. package/dist/lib/review-memory.d.ts +212 -0
  85. package/dist/lib/review-memory.d.ts.map +1 -0
  86. package/dist/lib/review-memory.js +305 -0
  87. package/dist/lib/review-memory.js.map +1 -0
  88. package/dist/lib/review-models.d.ts +2 -2
  89. package/dist/lib/review-models.js +2 -2
  90. package/dist/lib/runner.d.ts +37 -2
  91. package/dist/lib/runner.d.ts.map +1 -1
  92. package/dist/lib/runner.js +81 -28
  93. package/dist/lib/runner.js.map +1 -1
  94. package/dist/lib/tips.js +1 -1
  95. package/dist/lib/tips.js.map +1 -1
  96. package/dist/lib/vendor-error-summary.d.ts +19 -0
  97. package/dist/lib/vendor-error-summary.d.ts.map +1 -0
  98. package/dist/lib/vendor-error-summary.js +95 -0
  99. package/dist/lib/vendor-error-summary.js.map +1 -0
  100. package/dist/reviewers/claude.d.ts.map +1 -1
  101. package/dist/reviewers/claude.js +2 -1
  102. package/dist/reviewers/claude.js.map +1 -1
  103. package/dist/reviewers/codex.d.ts.map +1 -1
  104. package/dist/reviewers/codex.js +2 -1
  105. package/dist/reviewers/codex.js.map +1 -1
  106. package/docs/dynamic-thoroughness.md +7 -4
  107. package/get-started.md +83 -9
  108. package/package.json +1 -1
@@ -16,21 +16,28 @@ import { initLogger, log as fileLog, logError } from '../lib/logger.js';
16
16
  import { parseVerdict, formatVerdict, prependVerdictToComment, NULL_VERDICT_WARNING, applySeverityGate, SEVERITY_GATE_NOTE, DOC_ONLY_GATE_NOTE, detectInconclusiveReview } from '../lib/verdict.js';
17
17
  import { clonePRForReview, BaseRefUnavailableError, changedFilesVsBase } from '../lib/clone.js';
18
18
  import { isDocOnlyChange } from '../lib/review-strategy.js';
19
- import { linearWritePossible } from '../lib/workflow.js';
19
+ import { linearWritePossible, DEFAULT_REVIEW_INSTRUCTIONS } from '../lib/workflow.js';
20
+ import { prepareReviewPlan, finishReviewOrFallback, savePublishedReview, assertReviewFresh } from '../lib/review-memory.js';
20
21
  import { parsePRSpec } from '../lib/pr-spec.js';
21
22
  import { closedPRSkip } from '../lib/pr-state.js';
22
23
  import { resolveCliInvocation } from '../lib/cli-invocation.js';
23
24
  import { executeMultiPR, resolveRunConcurrency, printMultiPRSummary, concurrencyError, aggregateExitCode } from '../lib/multi-run.js';
25
+ import { acquirePRLock, releasePRLock } from '../lib/pr-lock.js';
26
+ import { checkRemoteLock, claimRemoteLock, releaseRemoteLock, startRemoteLockHeartbeat } from '../github/review-status.js';
27
+ import { fetchStepHistoryWithRetry, identifyNextWorkflowStep } from '../lib/pr-workflow-state.js';
28
+ import { loadWorkflow } from '../lib/workflow.js';
29
+ import { filterStepsByTypes, readRepoWorkflowStepTypes } from '../lib/repo-workflow.js';
24
30
  import { loadSkillCatalog } from '../skills/catalog.js';
25
31
  import { createSkillActivationSession } from '../skills/broker.js';
26
32
  import { formatSkillAttribution } from '../skills/attribution.js';
33
+ import { resolveStrategyForPR, logStrategyResolution, resolveRoundExecution, strategyCitation } from '../lib/runner.js';
27
34
  function parsePRUrl(url) {
28
35
  const m = url.match(/github\.com\/([^/]+)\/([^/]+)\/pull\/(\d+)/);
29
36
  if (!m)
30
37
  return null;
31
38
  return { owner: m[1], repo: m[2], number: parseInt(m[3], 10) };
32
39
  }
33
- export async function runReview(prUrl, configPath, forceReviewer) {
40
+ export async function runReview(prUrl, configPath, forceReviewer, force = false) {
34
41
  const config = loadConfig(configPath);
35
42
  initLogger(config.logs);
36
43
  fileLog({ level: 'info', event: 'session_start', command: 'review', pr_url: prUrl });
@@ -60,6 +67,33 @@ export async function runReview(prUrl, configPath, forceReviewer) {
60
67
  }
61
68
  spinner.succeed(`PR #${number}: ${pr.title}`);
62
69
  fileLog({ level: 'info', event: 'pr_received', repo: `${owner}/${repo}`, pr: number, sha: pr.head.sha });
70
+ // `review` posts to the same PR as `run` and `watch`, so it answers to the same two
71
+ // questions they do — is this commit already settled, and is anyone else on it.
72
+ // Skipping both is how this command re-reviewed commits another instance had already
73
+ // APPROVEd, and how it posted a second, contradicting verdict on a commit a watcher
74
+ // was reviewing at that moment (measured on humanbased-ai/monorepo#4507).
75
+ if (!force) {
76
+ try {
77
+ const repoStepOverride = readRepoWorkflowStepTypes(owner, repo);
78
+ const globalWorkflow = loadWorkflow(process.cwd());
79
+ const allSteps = repoStepOverride ? filterStepsByTypes(globalWorkflow, repoStepOverride) : globalWorkflow;
80
+ const history = await fetchStepHistoryWithRetry(owner, repo, number, token);
81
+ const next = identifyNextWorkflowStep(history, allSteps, pr.head.sha, { mergeable: pr.mergeable });
82
+ if (next.stopReason === 'approved') {
83
+ fileLog({ level: 'info', event: 'pr_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'approved', sha: pr.head.sha });
84
+ console.log(chalk.dim(' this commit is already approved — nothing to do until new commits land (use --force to review it anyway)'));
85
+ return;
86
+ }
87
+ }
88
+ catch (err) {
89
+ // Unlike run/watch this command reviews and nothing more: it cannot resume a
90
+ // half-finished workflow or modify an approved commit, so an unreadable history
91
+ // costs at most one redundant review comment. Warn and continue rather than
92
+ // strand an explicit user request on a transient API failure.
93
+ fileLog({ level: 'warn', event: 'approval_check_skipped', repo: `${owner}/${repo}`, pr: number, error: err instanceof Error ? err.message : String(err) });
94
+ console.log(chalk.yellow(' ⚠ could not read PR history — reviewing without the approval check'));
95
+ }
96
+ }
63
97
  let reviewer;
64
98
  let origin = 'human';
65
99
  const normalizedReviewer = normalizeVendor(forceReviewer);
@@ -97,6 +131,53 @@ export async function runReview(prUrl, configPath, forceReviewer) {
97
131
  process.exit(isLinearConfigError(err) ? 1 : 2);
98
132
  }
99
133
  }
134
+ // Taken here, not earlier: everything above can still decline the PR — a closed
135
+ // PR, routing that assigns no reviewer, an unusable Linear credential — and each
136
+ // of those returns. Holding the lock across them would leave the lock file and a
137
+ // pending `crosscheck/review` status behind on a PR nothing is reviewing.
138
+ if (!acquirePRLock(owner, repo, number, pr.head.sha)) {
139
+ fileLog({ level: 'info', event: 'pr_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'in_progress_local', sha: pr.head.sha });
140
+ console.log(chalk.yellow(`⚠ PR #${number} is already being worked on by another crosscheck process — skipping`));
141
+ return;
142
+ }
143
+ let lockHeld = true;
144
+ // A holder rather than a bare `let`: releaseLocks closes over it, so it has to be
145
+ // declared before the heartbeat that fills it in can start.
146
+ const heartbeat = {};
147
+ // Every exit after this point goes through here exactly once: the lock must not
148
+ // outlive the review, and the commit status must not be resolved twice.
149
+ const releaseLocks = async (outcome) => {
150
+ if (!lockHeld)
151
+ return;
152
+ lockHeld = false;
153
+ heartbeat.stop?.();
154
+ await releaseRemoteLock(octokit, owner, repo, pr.head.sha, outcome);
155
+ releasePRLock(owner, repo, number, pr.head.sha);
156
+ };
157
+ try {
158
+ if (await checkRemoteLock(octokit, owner, repo, pr.head.sha)) {
159
+ lockHeld = false;
160
+ releasePRLock(owner, repo, number, pr.head.sha);
161
+ fileLog({ level: 'info', event: 'pr_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'in_progress_remote', sha: pr.head.sha });
162
+ console.log(chalk.yellow(`⚠ PR #${number} is already being reviewed on another machine — skipping`));
163
+ return;
164
+ }
165
+ if (!await claimRemoteLock(octokit, owner, repo, pr.head.sha)) {
166
+ lockHeld = false;
167
+ releasePRLock(owner, repo, number, pr.head.sha);
168
+ fileLog({ level: 'info', event: 'pr_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'lost_remote_claim', sha: pr.head.sha });
169
+ console.log(chalk.yellow(`⚠ PR #${number} was claimed by another crosscheck instance — skipping`));
170
+ return;
171
+ }
172
+ }
173
+ catch (err) {
174
+ lockHeld = false;
175
+ releasePRLock(owner, repo, number, pr.head.sha);
176
+ logError({ repo: `${owner}/${repo}`, pr: number, phase: 'lock' }, err);
177
+ console.error(chalk.red(`✗ ${err instanceof Error ? err.message : String(err)}`));
178
+ process.exit(2);
179
+ }
180
+ heartbeat.stop = startRemoteLockHeartbeat(octokit, owner, repo, pr.head.sha);
100
181
  // Clone the repo into a temp dir
101
182
  const tmpDir = mkdtempSync(join(tmpdir(), 'crosscheck-repo-'));
102
183
  const skillSession = config.skills.enabled.length > 0
@@ -107,10 +188,11 @@ export async function runReview(prUrl, configPath, forceReviewer) {
107
188
  try {
108
189
  const { baseRefStatus } = await clonePRForReview({
109
190
  owner, repo, prNumber: number, baseRef: pr.base.ref, baseSha: pr.base.sha,
110
- tmpDir, token, protocol: config.clone_protocol,
191
+ tmpDir, token, protocol: config.clone_protocol, repositoryCache: config.repository_cache,
111
192
  onProgress: line => { spinner2.text = `Cloning repo for review... ${line}`; },
112
193
  onBaseFetchFailed: () => fileLog({ level: 'warn', event: 'base_branch_fetch_skipped', repo: `${owner}/${repo}`, pr: number, base: pr.base.ref }),
113
194
  onBaseRefRecovered: status => fileLog({ level: 'info', event: 'base_ref_recovered', repo: `${owner}/${repo}`, pr: number, base: pr.base.ref, via: status }),
195
+ onCacheFailed: message => fileLog({ level: 'warn', event: 'repository_cache_failed', repo: `${owner}/${repo}`, pr: number, error: message }),
114
196
  });
115
197
  spinner2.succeed('Repo ready');
116
198
  if (baseRefStatus === 'unavailable') {
@@ -120,6 +202,32 @@ export async function runReview(prUrl, configPath, forceReviewer) {
120
202
  if (baseRefStatus !== 'fetched') {
121
203
  console.log(chalk.yellow(` base ref origin/${pr.base.ref} was missing — recovered ${baseRefStatus === 'recovered_by_sha' ? 'from the PR base commit' : "from the PR's merge ref"}`));
122
204
  }
205
+ // Classified from the clone through the same functions as run and watch, so
206
+ // this review runs at the tier and effort the PR's class earns. Null under
207
+ // `quality.mode: fixed` or when the diff cannot be read, and then the
208
+ // configured tier applies unchanged.
209
+ const strategy = resolveStrategyForPR({ tmpDir, pr, config });
210
+ logStrategyResolution(config.quality, strategy, `${owner}/${repo}`, number);
211
+ // A null tier means the class would skip this PR. This command is an explicit
212
+ // request for one review, so it runs anyway at the configured tier — the call
213
+ // `run --steps` makes too — and says so, or it would look unclassified.
214
+ if (strategy && strategy.tier === null) {
215
+ console.log(chalk.dim(` strategy v${strategy.version}: ${strategy.classId} would skip this PR (${strategy.reason}) — honouring the explicit review`));
216
+ fileLog({ level: 'info', event: 'strategy_class_skip_bypassed', repo: `${owner}/${repo}`, pr: number, pr_class: strategy.classId, strategy_version: strategy.version });
217
+ }
218
+ // Round 1: this command has no fix loop, so nothing escalates.
219
+ const { strategy: appliedStrategy, quality, claudeVendor, codexVendor } = resolveRoundExecution(config, strategy, 1);
220
+ if (strategy && appliedStrategy) {
221
+ // Only the routed reviewer runs, so name the effort it was given.
222
+ const appliedEffort = reviewer === 'codex' ? codexVendor.effort : claudeVendor.effort;
223
+ console.log(chalk.dim(` strategy v${strategy.version}: ${strategy.classId} → ${appliedStrategy.tier ?? 'skip'} tier (${appliedEffort})`));
224
+ }
225
+ const memoryPlan = config.quality.review_memory ? prepareReviewPlan({
226
+ repoDir: tmpDir, subject: `${owner}/${repo}#${number}`, baseBranch: pr.base.ref,
227
+ instructions: DEFAULT_REVIEW_INSTRUCTIONS, policy: JSON.stringify(config.quality),
228
+ }) : undefined;
229
+ if (memoryPlan)
230
+ fileLog({ level: 'info', event: 'review_memory_plan', repo: `${owner}/${repo}`, pr: number, mode: memoryPlan.mode, reason: memoryPlan.reason });
123
231
  let reviewText;
124
232
  let tokensUsed;
125
233
  let model = 'default';
@@ -135,11 +243,11 @@ export async function runReview(prUrl, configPath, forceReviewer) {
135
243
  try {
136
244
  if (reviewer === 'codex') {
137
245
  ;
138
- ({ review: reviewText, tokensUsed, model, effort } = await runCodexReview(tmpDir, pr.base.ref, pr.title, config.quality, config.vendors.codex, undefined, msg => { reviewSpinner.text = msg; }, codexTimeoutMs, undefined, undefined, skillSession, config.skills.codex_full_access));
246
+ ({ review: reviewText, tokensUsed, model, effort } = await runCodexReview(tmpDir, pr.base.ref, pr.title, quality, codexVendor, memoryPlan?.instructions, msg => { reviewSpinner.text = msg; }, codexTimeoutMs, undefined, undefined, skillSession, config.skills.codex_full_access));
139
247
  }
140
248
  else {
141
249
  ;
142
- ({ review: reviewText, tokensUsed, model, effort } = await runClaudeReview(tmpDir, pr.base.ref, pr.title, config.quality, config.vendors.claude, config.budget.per_review_usd, undefined, msg => { reviewSpinner.text = msg; }, claudeTimeoutMs, undefined, undefined, undefined, skillSession));
250
+ ({ review: reviewText, tokensUsed, model, effort } = await runClaudeReview(tmpDir, pr.base.ref, pr.title, quality, claudeVendor, config.budget.per_review_usd, memoryPlan?.instructions, msg => { reviewSpinner.text = msg; }, claudeTimeoutMs, undefined, undefined, undefined, skillSession));
143
251
  }
144
252
  }
145
253
  finally {
@@ -149,6 +257,16 @@ export async function runReview(prUrl, configPath, forceReviewer) {
149
257
  const activatedSkills = skillSession?.activations() ?? [];
150
258
  if (activatedSkills.length > 0)
151
259
  console.log(chalk.dim(` skills: ${formatSkillAttribution(activatedSkills)}`));
260
+ const structured = memoryPlan ? finishReviewOrFallback(memoryPlan, reviewText) : undefined;
261
+ if (structured)
262
+ reviewText = structured.text;
263
+ if (structured?.adjustments?.length) {
264
+ fileLog({ level: 'info', event: 'structured_review_reconciled', repo: `${owner}/${repo}`, pr: number, reviewer, adjustments: structured.adjustments });
265
+ }
266
+ if (structured?.fallbackReason) {
267
+ fileLog({ level: 'warn', event: 'structured_review_fallback', repo: `${owner}/${repo}`, pr: number, reviewer, reason: structured.fallbackReason });
268
+ console.log(chalk.yellow(` structured review unusable (${structured.fallbackReason}) — posting raw output without a verdict`));
269
+ }
152
270
  const parsed = parseVerdict(reviewText);
153
271
  const { clean } = parsed;
154
272
  if (parsed.verdict === null) {
@@ -179,7 +297,21 @@ export async function runReview(prUrl, configPath, forceReviewer) {
179
297
  const reviewBody = verdict === null
180
298
  ? `${NULL_VERDICT_WARNING}\n\n${clean}`
181
299
  : prependVerdictToComment(gate.downgraded ? `${gateNote}\n\n${clean}` : clean, verdict);
182
- await postReviewComment(octokit, owner, repo, number, reviewBody, reviewer, config.brand, origin, verdict ?? undefined, undefined, false, model, 'review', 1, pr.head.sha, undefined, undefined, activatedSkills, effort);
300
+ if (memoryPlan) {
301
+ const { data: current } = await octokit.rest.pulls.get({ owner, repo, pull_number: number });
302
+ assertReviewFresh(memoryPlan, current, pr.head.sha, pr.head.sha, pr.state);
303
+ }
304
+ await postReviewComment(octokit, owner, repo, number, reviewBody, reviewer, config.brand, origin, verdict ?? undefined, undefined, false, model, 'review', 1, pr.head.sha, undefined, undefined, activatedSkills, effort, strategyCitation(reviewer === 'codex' ? config.vendors.codex : config.vendors.claude, strategy, appliedStrategy, model));
305
+ if (memoryPlan && structured?.snapshot) {
306
+ // The review is already posted; a memory write failure only costs the next review its delta.
307
+ try {
308
+ if (!await savePublishedReview(memoryPlan, structured.snapshot))
309
+ fileLog({ level: 'info', event: 'review_memory_superseded', repo: `${owner}/${repo}`, pr: number });
310
+ }
311
+ catch (err) {
312
+ fileLog({ level: 'warn', event: 'review_memory_save_failed', repo: `${owner}/${repo}`, pr: number, error: err instanceof Error ? err.message : String(err) });
313
+ }
314
+ }
183
315
  fileLog({ level: 'info', event: 'comment_posted', repo: `${owner}/${repo}`, pr: number, url: prUrl });
184
316
  console.log(chalk.green(`\n✓ Review posted to ${prUrl}\n`));
185
317
  if (linearAuth) {
@@ -216,10 +348,15 @@ export async function runReview(prUrl, configPath, forceReviewer) {
216
348
  reviewSpinner?.fail();
217
349
  const message = err instanceof Error ? err.message : String(err);
218
350
  logError({ repo: `${owner}/${repo}`, pr: number, phase: 'review' }, err);
351
+ // Released as `failure`, not `success`: this SHA was not reviewed, and
352
+ // `crosscheck/review` is a status a repo can require for merge — a green one
353
+ // here would let an unreviewed HEAD satisfy branch protection.
354
+ await releaseLocks('failure');
219
355
  console.error(chalk.red(`\n✗ ${message}`));
220
356
  process.exit(2);
221
357
  }
222
358
  finally {
359
+ await releaseLocks('success');
223
360
  skillSession?.close();
224
361
  rmSync(tmpDir, { force: true, recursive: true });
225
362
  }
@@ -230,6 +367,8 @@ export function buildReviewChildArgs(ref, opts) {
230
367
  args.push('-c', opts.config);
231
368
  if (opts.reviewer)
232
369
  args.push('--reviewer', opts.reviewer);
370
+ if (opts.force)
371
+ args.push('--force');
233
372
  return args;
234
373
  }
235
374
  // Entry point for the `review` command. A single PR reviews in-process; multiple
@@ -249,7 +388,7 @@ export async function runReviewSpec(spec, opts = {}) {
249
388
  process.exit(1);
250
389
  }
251
390
  if (refs.length === 1) {
252
- await runReview(refs[0].url, opts.config, opts.reviewer);
391
+ await runReview(refs[0].url, opts.config, opts.reviewer, opts.force);
253
392
  return;
254
393
  }
255
394
  const { concurrency, staggerMs } = resolveRunConcurrency(refs.length, opts);
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAiB,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAA2B,MAAM,uBAAuB,CAAA;AACnH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;AACnM,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAA;AACrF,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3H,OAAO,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAA;AAC3J,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAC1H,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAEvH,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;IACjE,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAA;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,UAAmB,EAAE,aAAsB,EAAE,KAAK,GAAG,KAAK;IACvG,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACrC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACvB,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAEpF,IAAI,KAAa,CAAA;IACjB,IAAI,CAAC;QACH,KAAK,GAAG,cAAc,EAAE,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QACnD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IAEzC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC,CAAA;QAC5F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IAEtC,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,MAAM,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;IACxD,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IACvF,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;IACnC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,OAAO,MAAM,OAAO,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAA;QACrE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAChH,OAAM;IACR,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IAExG,oFAAoF;IACpF,gFAAgF;IAChF,qFAAqF;IACrF,oFAAoF;IACpF,0EAA0E;IAC1E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAC/D,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,cAAc,CAAA;YACzG,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;YAC3E,MAAM,IAAI,GAAG,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAA;YAClG,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;gBAC3H,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4GAA4G,CAAC,CAAC,CAAA;gBACpI,OAAM;YACR,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,6EAA6E;YAC7E,gFAAgF;YAChF,4EAA4E;YAC5E,8DAA8D;YAC9D,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC1J,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sEAAsE,CAAC,CAAC,CAAA;QACnG,CAAC;IACH,CAAC;IAED,IAAI,QAAmC,CAAA;IACvC,IAAI,MAAM,GAAa,OAAO,CAAA;IAE9B,MAAM,kBAAkB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAA;IACzD,IAAI,aAAa,KAAK,SAAS,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,aAAa,gBAAgB,iBAAiB,EAAE,CAAC,CAAC,CAAA;QACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAChC,QAAQ,GAAG,kBAAkB,CAAA;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,QAAQ,WAAW,CAAC,CAAC,CAAA;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAC/D,EAAE,CAAC,IAAI,IAAI,EAAE,EACb,EAAE,CAAC,IAAI,CAAC,GAAG,EACX,KAAK,EACL,IAAI,EACJ,MAAM,EACN,MAAM,EACN,KAAK,EACL,EAAE,CAAC,IAAI,EAAE,KAAK,CACf,CAAA;QACD,MAAM,GAAG,cAAc,CAAA;QACvB,QAAQ,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,SAAS,MAAM,4CAA4C,iBAAiB,YAAY,CAAC,CAAC,CAAA;YACtI,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,SAAS,MAAM,0BAA0B,QAAQ,EAAE,CAAC,CAAC,CAAA;IACnG,CAAC;IAED,+EAA+E;IAC/E,iFAAiF;IACjF,iFAAiF;IACjF,8CAA8C;IAC9C,IAAI,UAAU,GAA8B,IAAI,CAAA;IAChD,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;QAC7D,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7F,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;QAC3G,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,GAAG,CAAC,CAAA;YAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YACjF,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,iFAAiF;IACjF,iFAAiF;IACjF,0EAA0E;IAC1E,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACpI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,MAAM,sEAAsE,CAAC,CAAC,CAAA;QACjH,OAAM;IACR,CAAC;IACD,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,kFAAkF;IAClF,4DAA4D;IAC5D,MAAM,SAAS,GAA0B,EAAE,CAAA;IAC3C,gFAAgF;IAChF,wEAAwE;IACxE,MAAM,YAAY,GAAG,KAAK,EAAE,OAA8B,EAAiB,EAAE;QAC3E,IAAI,CAAC,QAAQ;YAAE,OAAM;QACrB,QAAQ,GAAG,KAAK,CAAA;QAChB,SAAS,CAAC,IAAI,EAAE,EAAE,CAAA;QAClB,MAAM,iBAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACnE,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACjD,CAAC,CAAA;IACD,IAAI,CAAC;QACH,IAAI,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7D,QAAQ,GAAG,KAAK,CAAA;YAChB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/C,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YACrI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,MAAM,0DAA0D,CAAC,CAAC,CAAA;YACrG,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,QAAQ,GAAG,KAAK,CAAA;YAChB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/C,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YACpI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,MAAM,wDAAwD,CAAC,CAAC,CAAA;YACnG,OAAM;QACR,CAAC;IACH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,QAAQ,GAAG,KAAK,CAAA;QAChB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QACtE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,SAAS,CAAC,IAAI,GAAG,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAE5E,iCAAiC;IACjC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QACnD,CAAC,CAAC,4BAA4B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QACnF,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,QAAQ,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAA;IAC1D,IAAI,aAAiD,CAAA;IAErD,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,gBAAgB,CAAC;YAC/C,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;YACzE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,CAAC,gBAAgB;YACxF,UAAU,EAAE,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,GAAG,8BAA8B,IAAI,EAAE,CAAA,CAAC,CAAC;YAC5E,iBAAiB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAChJ,kBAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;YAC3J,aAAa,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SAC7I,CAAC,CAAA;QACF,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC9B,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;YACpC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YAC1I,MAAM,IAAI,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAChD,CAAC;QACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,GAAG,4BAA4B,aAAa,KAAK,kBAAkB,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAA;QACvL,CAAC;QAED,4EAA4E;QAC5E,2EAA2E;QAC3E,sEAAsE;QACtE,qCAAqC;QACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;QAC7D,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;QAC3E,8EAA8E;QAC9E,8EAA8E;QAC9E,wEAAwE;QACxE,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,wBAAwB,QAAQ,CAAC,MAAM,mCAAmC,CAAC,CAAC,CAAA;YACtJ,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;QACzK,CAAC;QACD,+DAA+D;QAC/D,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACpH,IAAI,QAAQ,IAAI,eAAe,EAAE,CAAC;YAChC,kEAAkE;YAClE,MAAM,aAAa,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAA;YACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,OAAO,MAAM,eAAe,CAAC,IAAI,IAAI,MAAM,UAAU,aAAa,GAAG,CAAC,CAAC,CAAA;QAC5I,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAClE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;YAC/E,YAAY,EAAE,2BAA2B,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;SAClF,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACd,IAAI,UAAU;YAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAC/J,IAAI,UAAkB,CAAA;QACtB,IAAI,UAA8B,CAAA;QAClC,IAAI,KAAK,GAAG,SAAS,CAAA;QACrB,IAAI,MAA0B,CAAA;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC9B,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnG,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,aAAa,GAAG,GAAG,CAAC,WAAW,QAAQ,YAAY,CAAC,CAAC,KAAK,EAAE,CAAA;QAC5D,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,aAAc,CAAC,IAAI,GAAG,WAAW,QAAQ,eAAe,OAAO,IAAI,CAAA,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;QAEhI,qFAAqF;QACrF,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAA;QACrH,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAA;QAExH,IAAI,CAAC;YACH,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACzB,CAAC;gBAAA,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,cAAc,CACxE,MAAM,EACN,EAAE,CAAC,IAAI,CAAC,GAAG,EACX,EAAE,CAAC,KAAK,EACR,OAAO,EACP,WAAW,EACX,UAAU,EAAE,YAAY,EACxB,GAAG,CAAC,EAAE,GAAG,aAAc,CAAC,IAAI,GAAG,GAAG,CAAA,CAAC,CAAC,EACpC,cAAc,EACd,SAAS,EACT,SAAS,EACT,YAAY,EACZ,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAChC,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,CAAC;gBAAA,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CACzE,MAAM,EACN,EAAE,CAAC,IAAI,CAAC,GAAG,EACX,EAAE,CAAC,KAAK,EACR,OAAO,EACP,YAAY,EACZ,MAAM,CAAC,MAAM,CAAC,cAAc,EAC5B,UAAU,EAAE,YAAY,EACxB,GAAG,CAAC,EAAE,GAAG,aAAc,CAAC,IAAI,GAAG,GAAG,CAAA,CAAC,CAAC,EACpC,eAAe,EACf,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,CACb,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,YAAY,CAAC,CAAA;QAC7B,CAAC;QAED,aAAa,CAAC,OAAO,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAA;QACtD,MAAM,eAAe,GAAG,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,CAAA;QACzD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,sBAAsB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9G,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC1F,IAAI,UAAU;YAAE,UAAU,GAAG,UAAU,CAAC,IAAI,CAAA;QAC5C,IAAI,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAAA;QACxJ,CAAC;QACD,IAAI,UAAU,EAAE,cAAc,EAAE,CAAC;YAC/B,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,cAAc,EAAE,CAAC,CAAA;YAClJ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iCAAiC,UAAU,CAAC,cAAc,0CAA0C,CAAC,CAAC,CAAA;QACjI,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;QACvC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;QACxB,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7I,CAAC;QACD,8EAA8E;QAC9E,gFAAgF;QAChF,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAA;QACpD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;YACzN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,uBAAuB,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,KAAK,eAAe,CAAC,CAAC,CAAA;YAC1E,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,0BAA0B,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7E,CAAC;QAED,iFAAiF;QACjF,+EAA+E;QAC/E,6EAA6E;QAC7E,qEAAqE;QACrE,MAAM,OAAO,GAAG,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAA;QACrF,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACvL,CAAC;QACD,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtQ,OAAO,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAA;QACrF,MAAM,UAAU,GAAG,OAAO,KAAK,IAAI;YACjC,CAAC,CAAC,GAAG,oBAAoB,OAAO,KAAK,EAAE;YACvC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACzF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;YAC5F,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;QAC5E,CAAC;QACD,MAAM,iBAAiB,CACrB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAChM,gBAAgB,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,CACxH,CAAA;QACD,IAAI,UAAU,IAAI,UAAU,EAAE,QAAQ,EAAE,CAAC;YACvC,6FAA6F;YAC7F,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC;oBAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;YACtK,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAC/J,CAAC;QACH,CAAC;QACD,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;QACrG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAA;QAE3D,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;gBAChC,wEAAwE;gBACxE,oDAAoD;gBACpD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;gBAC3F,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/F,OAAO;gBACP,QAAQ;gBACR,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;aACnC,CAAC,CAAA;YACF,OAAO,CAAC;gBACN,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;gBACnD,KAAK,EAAE,gBAAgB;gBACvB,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM;gBACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU;aACvE,CAAC,CAAA;YACF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,UAAU,KAAK,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;YACvF,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,4EAA4E;gBAC5E,mCAAmC;gBACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,4BAA4B,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;IAEH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,EAAE,CAAA;QACf,aAAa,EAAE,IAAI,EAAE,CAAA;QACrB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChE,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAA;QACxE,uEAAuE;QACvE,6EAA6E;QAC7E,+DAA+D;QAC/D,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;QAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAA;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;YAAS,CAAC;QACT,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;QAC7B,YAAY,EAAE,KAAK,EAAE,CAAA;QACrB,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC;AACH,CAAC;AASD,MAAM,UAAU,oBAAoB,CAAC,GAAU,EAAE,IAAoB;IACnE,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACzD,IAAI,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpC,OAAO,IAAI,CAAA;AACb,CAAC;AAED,iFAAiF;AACjF,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,OAAuB,EAAE;IACzE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAA;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QACpE,OAAM;IACR,CAAC;IAED,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3E,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,SAAS,aAAa,CAAC,CAAC,CAAA;IACxI,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,MAAM,mBAAmB,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAA;IACzC,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,CAAA;IAC/B,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAU,EAA0B,EAAE;QAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YAC3D,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAClF,OAAO,MAAM,CAAC,GAAG,IAAI,EAAE,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;IAChF,mBAAmB,CAAC,OAAO,CAAC,CAAA;IAC5B,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAC/C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { parseDuration } from '../lib/durations.js';
7
7
  import ora from 'ora';
8
8
  import { createGithubClient, fetchIssueComment } from '../github/client.js';
9
9
  import { parseAnnotation } from '../lib/annotation.js';
10
- import { fetchStandingVerdictRecords, fetchStepHistory, identifyNextWorkflowStep } from '../lib/pr-workflow-state.js';
10
+ import { fetchStandingVerdictRecords, fetchStepHistoryWithRetry, identifyNextWorkflowStep } from '../lib/pr-workflow-state.js';
11
11
  import { detectOriginFull, assignReviewer } from '../github/detector.js';
12
12
  import { loadConfig, getGithubToken, getLinearApiKey, getLinearCredentials } from '../config/loader.js';
13
13
  import { enrichIssueContext } from '../issues/enrich.js';
@@ -26,7 +26,7 @@ import { formatVerdict } from '../lib/verdict.js';
26
26
  import { buildNoVerdictReport, renderNoVerdictReport, selectStandingVerdict } from '../lib/no-verdict.js';
27
27
  import { clonePRForReview, runGitWithoutHooks, BaseRefUnavailableError } from '../lib/clone.js';
28
28
  import { acquirePRLock, releasePRLock } from '../lib/pr-lock.js';
29
- import { checkRemoteLock, acquireRemoteLock, releaseRemoteLock, startRemoteLockHeartbeat } from '../github/review-status.js';
29
+ import { checkRemoteLock, acquireRemoteLock, claimRemoteLock, releaseRemoteLock, startRemoteLockHeartbeat } from '../github/review-status.js';
30
30
  function meetsCrazyStopCondition(verdict, mode) {
31
31
  if (verdict === null)
32
32
  return false;
@@ -374,7 +374,7 @@ export async function runRun(prUrl, opts = {}) {
374
374
  let standingVerdict;
375
375
  if (!opts.steps) {
376
376
  try {
377
- const history = await fetchStepHistory(owner, repo, number, token);
377
+ const history = await fetchStepHistoryWithRetry(owner, repo, number, token);
378
378
  // prData comes from pulls.get, which carries `mergeable` — so routing a conflicted
379
379
  // PR to conflict-resolve costs no extra call here.
380
380
  const nextResult = identifyNextWorkflowStep(history, allSteps, prData.head.sha, { mergeable: prData.mergeable });
@@ -414,7 +414,16 @@ export async function runRun(prUrl, opts = {}) {
414
414
  // so the subprocess exits non-zero and kickass records a retryable failure.
415
415
  throw err;
416
416
  }
417
- /* best-effort for other triggers — fall through to normal review flow */
417
+ // Fail closed here too. This history is what carries the approval stop and the
418
+ // per-SHA dedup, so falling through without it re-reviews commits that are
419
+ // already approved — measured on 2026-09-19, when a batch of `ck run`
420
+ // invocations rate-limited this fetch and re-reviewed four already-APPROVEd
421
+ // SHAs. `--steps` remains the deliberate way to force a pass without history.
422
+ const message = err instanceof Error ? err.message : String(err);
423
+ fileLog({ level: 'warn', event: 'pr_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'history_unavailable', sha: prData.head.sha, error: message });
424
+ console.log(chalk.yellow(`⚠ could not read PR history (${message}) — skipping rather than risk re-reviewing an approved commit`));
425
+ console.log(chalk.dim(' use --steps review to force a pass without history detection'));
426
+ return;
418
427
  }
419
428
  }
420
429
  const stepVendorOverrides = {
@@ -551,7 +560,15 @@ export async function runRun(prUrl, opts = {}) {
551
560
  // request still triggers releaseRemoteLock (GitHub may have already
552
561
  // created the pending status server-side).
553
562
  lockAttemptStarted = true;
554
- await acquireRemoteLock(octokit, owner, repo, sha);
563
+ if (!await claimRemoteLock(octokit, owner, repo, sha)) {
564
+ // Another instance claimed this commit inside the check-then-act window.
565
+ // Its claim is the live one, so leave it alone and drop ours.
566
+ releasePRLock(owner, repo, number, sha);
567
+ lockAttemptStarted = false;
568
+ fileLog({ level: 'info', event: 'pr_skipped', repo: `${owner}/${repo}`, pr: number, reason: 'lost_remote_claim', sha });
569
+ console.log(chalk.yellow(`⚠ PR #${number} was claimed by another crosscheck instance — skipping`));
570
+ return;
571
+ }
555
572
  }
556
573
  catch (err) {
557
574
  releasePRLock(owner, repo, number, sha);
@@ -582,9 +599,10 @@ export async function runRun(prUrl, opts = {}) {
582
599
  : null;
583
600
  const { baseRefStatus } = await clonePRForReview({
584
601
  owner, repo, prNumber: number, baseRef: prData.base.ref, baseSha: prData.base.sha,
585
- tmpDir, token, protocol: config.clone_protocol,
602
+ tmpDir, token, protocol: config.clone_protocol, repositoryCache: config.repository_cache,
586
603
  onBaseFetchFailed: () => fileLog({ level: 'warn', event: 'base_branch_fetch_skipped', repo: `${owner}/${repo}`, pr: number, base: prData.base.ref }),
587
604
  onBaseRefRecovered: status => fileLog({ level: 'info', event: 'base_ref_recovered', repo: `${owner}/${repo}`, pr: number, base: prData.base.ref, via: status }),
605
+ onCacheFailed: message => fileLog({ level: 'warn', event: 'repository_cache_failed', repo: `${owner}/${repo}`, pr: number, error: message }),
588
606
  });
589
607
  cloneSpinner.succeed('Repo ready');
590
608
  if (baseRefStatus === 'unavailable') {