@humanbased/crosscheck 1.6.0-beta.8 → 1.6.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.
- package/README.md +2 -0
- package/crosscheck.config.example.yml +17 -4
- package/dist/__tests__/board.test.js +68 -30
- package/dist/__tests__/board.test.js.map +1 -1
- package/dist/__tests__/lock-ownership.test.d.ts +2 -0
- package/dist/__tests__/lock-ownership.test.d.ts.map +1 -0
- package/dist/__tests__/lock-ownership.test.js +167 -0
- package/dist/__tests__/lock-ownership.test.js.map +1 -0
- package/dist/__tests__/optimize.test.js +4 -3
- package/dist/__tests__/optimize.test.js.map +1 -1
- package/dist/__tests__/repository-cache.test.d.ts +2 -0
- package/dist/__tests__/repository-cache.test.d.ts.map +1 -0
- package/dist/__tests__/repository-cache.test.js +91 -0
- package/dist/__tests__/repository-cache.test.js.map +1 -0
- package/dist/__tests__/repository-guidance.test.js +1 -1
- package/dist/__tests__/repository-guidance.test.js.map +1 -1
- package/dist/__tests__/review-command-strategy.test.d.ts +2 -0
- package/dist/__tests__/review-command-strategy.test.d.ts.map +1 -0
- package/dist/__tests__/review-command-strategy.test.js +194 -0
- package/dist/__tests__/review-command-strategy.test.js.map +1 -0
- package/dist/__tests__/review-efficiency-config.test.d.ts +2 -0
- package/dist/__tests__/review-efficiency-config.test.d.ts.map +1 -0
- package/dist/__tests__/review-efficiency-config.test.js +16 -0
- package/dist/__tests__/review-efficiency-config.test.js.map +1 -0
- package/dist/__tests__/review-memory.test.d.ts +2 -0
- package/dist/__tests__/review-memory.test.d.ts.map +1 -0
- package/dist/__tests__/review-memory.test.js +252 -0
- package/dist/__tests__/review-memory.test.js.map +1 -0
- package/dist/__tests__/review-models.test.js +1 -0
- package/dist/__tests__/review-models.test.js.map +1 -1
- package/dist/__tests__/review-strategy.test.js +78 -3
- package/dist/__tests__/review-strategy.test.js.map +1 -1
- package/dist/__tests__/vendor-error-summary.test.d.ts +2 -0
- package/dist/__tests__/vendor-error-summary.test.d.ts.map +1 -0
- package/dist/__tests__/vendor-error-summary.test.js +74 -0
- package/dist/__tests__/vendor-error-summary.test.js.map +1 -0
- package/dist/__tests__/watch-concurrency.test.d.ts +2 -0
- package/dist/__tests__/watch-concurrency.test.d.ts.map +1 -0
- package/dist/__tests__/watch-concurrency.test.js +53 -0
- package/dist/__tests__/watch-concurrency.test.js.map +1 -0
- package/dist/cli.js +18 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/onboard.js +2 -2
- package/dist/commands/onboard.js.map +1 -1
- package/dist/commands/review.d.ts +3 -1
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +146 -7
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +24 -6
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/watch.d.ts +3 -0
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +170 -25
- package/dist/commands/watch.js.map +1 -1
- package/dist/config/schema.d.ts +27 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +12 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/github/review-status.d.ts +33 -0
- package/dist/github/review-status.d.ts.map +1 -1
- package/dist/github/review-status.js +94 -9
- package/dist/github/review-status.js.map +1 -1
- package/dist/lib/board.d.ts +1 -0
- package/dist/lib/board.d.ts.map +1 -1
- package/dist/lib/board.js +42 -37
- package/dist/lib/board.js.map +1 -1
- package/dist/lib/clone.d.ts +3 -0
- package/dist/lib/clone.d.ts.map +1 -1
- package/dist/lib/clone.js +21 -1
- package/dist/lib/clone.js.map +1 -1
- package/dist/lib/pr-lock.d.ts +37 -1
- package/dist/lib/pr-lock.d.ts.map +1 -1
- package/dist/lib/pr-lock.js +176 -29
- package/dist/lib/pr-lock.js.map +1 -1
- package/dist/lib/pr-workflow-state.d.ts +2 -0
- package/dist/lib/pr-workflow-state.d.ts.map +1 -1
- package/dist/lib/pr-workflow-state.js +15 -0
- package/dist/lib/pr-workflow-state.js.map +1 -1
- package/dist/lib/repository-cache.d.ts +18 -0
- package/dist/lib/repository-cache.d.ts.map +1 -0
- package/dist/lib/repository-cache.js +125 -0
- package/dist/lib/repository-cache.js.map +1 -0
- package/dist/lib/review-memory.d.ts +212 -0
- package/dist/lib/review-memory.d.ts.map +1 -0
- package/dist/lib/review-memory.js +305 -0
- package/dist/lib/review-memory.js.map +1 -0
- package/dist/lib/review-models.d.ts +2 -2
- package/dist/lib/review-models.js +2 -2
- package/dist/lib/runner.d.ts +37 -2
- package/dist/lib/runner.d.ts.map +1 -1
- package/dist/lib/runner.js +81 -28
- package/dist/lib/runner.js.map +1 -1
- package/dist/lib/tips.js +1 -1
- package/dist/lib/tips.js.map +1 -1
- package/dist/lib/vendor-error-summary.d.ts +19 -0
- package/dist/lib/vendor-error-summary.d.ts.map +1 -0
- package/dist/lib/vendor-error-summary.js +95 -0
- package/dist/lib/vendor-error-summary.js.map +1 -0
- package/dist/reviewers/claude.d.ts.map +1 -1
- package/dist/reviewers/claude.js +2 -1
- package/dist/reviewers/claude.js.map +1 -1
- package/dist/reviewers/codex.d.ts.map +1 -1
- package/dist/reviewers/codex.js +2 -1
- package/dist/reviewers/codex.js.map +1 -1
- package/docs/dynamic-thoroughness.md +7 -4
- package/get-started.md +83 -9
- package/package.json +1 -1
package/dist/commands/review.js
CHANGED
|
@@ -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,
|
|
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,
|
|
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
|
-
|
|
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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAaA,OAAO,EAAsC,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAKlF,OAAO,EAA0G,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAE9J,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG3D,OAAO,EAAmG,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE3J,OAAO,EAAsE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAMjI,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;IACjC,oBAAoB,CAAC,EAAE;QACrB,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,kBAAkB,EAAE,eAAe,CAAA;CACrD;AAiBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAkDD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EAAE,EACxB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EACpC,SAAS,GAAE,mBAAwB,GAClC,YAAY,EAAE,CAgBhB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EAAE,EACrB,QAAQ,EAAE,YAAY,EAAE,EACxB,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EACpC,SAAS,GAAE,mBAAwB,GAClC,YAAY,EAAE,CAehB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACrD,YAAY,EAAE,MAAM,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,GACxD,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAOxD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACjD,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC/B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAgBD,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,OAAY,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAaA,OAAO,EAAsC,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAKlF,OAAO,EAA0G,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAE9J,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG3D,OAAO,EAAmG,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE3J,OAAO,EAAsE,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAMjI,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;IACjC,oBAAoB,CAAC,EAAE;QACrB,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,kBAAkB,EAAE,eAAe,CAAA;CACrD;AAiBD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAkDD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,YAAY,EAAE,EACxB,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EACpC,SAAS,GAAE,mBAAwB,GAClC,YAAY,EAAE,CAgBhB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,YAAY,EAAE,EACrB,QAAQ,EAAE,YAAY,EAAE,EACxB,gBAAgB,EAAE,QAAQ,GAAG,OAAO,EACpC,SAAS,GAAE,mBAAwB,GAClC,YAAY,EAAE,CAehB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACrD,YAAY,EAAE,MAAM,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,GACxD,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAOxD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,EACjD,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC/B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B;AAgBD,wBAAsB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,OAAY,iBAywB7D;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,eAAe,CAAA;AAKnD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE,CAerE;AAKD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DpF;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF"}
|
package/dist/commands/run.js
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
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
|
|
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') {
|