@pushpalsdev/cli 1.0.42 → 1.0.44
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/package.json
CHANGED
|
@@ -92,7 +92,7 @@ export interface ReviewFixContext {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
export interface QualityGatePolicy {
|
|
95
|
-
mode: "default" | "review_fix";
|
|
95
|
+
mode: "default" | "review_fix" | "merge_conflict";
|
|
96
96
|
maxAutoRevisions: number;
|
|
97
97
|
softPassOnExhausted: boolean;
|
|
98
98
|
criticMinScore: number;
|
|
@@ -318,6 +318,15 @@ export function deriveQualityGatePolicy(
|
|
|
318
318
|
})();
|
|
319
319
|
const reviewFix = extractReviewFixContext(params);
|
|
320
320
|
if (!reviewFix) {
|
|
321
|
+
const mergeConflict = extractMergeConflictReviewContext(params);
|
|
322
|
+
if (mergeConflict) {
|
|
323
|
+
return {
|
|
324
|
+
mode: "merge_conflict",
|
|
325
|
+
maxAutoRevisions: baseMaxAutoRevisions,
|
|
326
|
+
softPassOnExhausted: false,
|
|
327
|
+
criticMinScore: baseCriticMinScore,
|
|
328
|
+
};
|
|
329
|
+
}
|
|
321
330
|
return {
|
|
322
331
|
mode: "default",
|
|
323
332
|
maxAutoRevisions: baseMaxAutoRevisions,
|
|
@@ -3340,6 +3349,7 @@ export async function executeJob(
|
|
|
3340
3349
|
};
|
|
3341
3350
|
const executionBudgetMs = Number(planning.executionBudgetMs);
|
|
3342
3351
|
const finalizationBudgetMs = Number(planning.finalizationBudgetMs);
|
|
3352
|
+
const mergeConflictContext = extractMergeConflictReviewContext(normalizedParams);
|
|
3343
3353
|
const reviewFixContext = extractReviewFixContext(normalizedParams);
|
|
3344
3354
|
const qualityGatePolicy = deriveQualityGatePolicy(normalizedParams, runtimeConfig);
|
|
3345
3355
|
const qualityMaxAutoRevisions = qualityGatePolicy.maxAutoRevisions;
|
|
@@ -3363,6 +3373,11 @@ export async function executeJob(
|
|
|
3363
3373
|
"stdout",
|
|
3364
3374
|
`[QualityGate] review_fix override active: prior_score=${priorScore}, target_threshold=${threshold}, soft_pass_on_exhausted=false.`,
|
|
3365
3375
|
);
|
|
3376
|
+
} else if (qualityGatePolicy.mode === "merge_conflict") {
|
|
3377
|
+
onLog?.(
|
|
3378
|
+
"stdout",
|
|
3379
|
+
"[QualityGate] merge_conflict override active: soft_pass_on_exhausted=false until the sandbox rebase is fully completed.",
|
|
3380
|
+
);
|
|
3366
3381
|
}
|
|
3367
3382
|
|
|
3368
3383
|
let revisionAttempt = 0;
|
|
@@ -3393,6 +3408,22 @@ export async function executeJob(
|
|
|
3393
3408
|
executeBudgets,
|
|
3394
3409
|
);
|
|
3395
3410
|
if (!result.ok) return result;
|
|
3411
|
+
if (mergeConflictContext) {
|
|
3412
|
+
const sequencer = await activeGitOperation(repo);
|
|
3413
|
+
if (sequencer) {
|
|
3414
|
+
const detail =
|
|
3415
|
+
`Merge-conflict job returned with git ${sequencer} still in progress. ` +
|
|
3416
|
+
`Finish the ${sequencer} before returning control to WorkerPals.`;
|
|
3417
|
+
onLog?.("stderr", `[MergeConflict] ${detail}`);
|
|
3418
|
+
return {
|
|
3419
|
+
ok: false,
|
|
3420
|
+
summary: detail,
|
|
3421
|
+
stdout: result.stdout,
|
|
3422
|
+
stderr: [result.stderr ?? "", detail].filter(Boolean).join("\n"),
|
|
3423
|
+
exitCode: 4,
|
|
3424
|
+
};
|
|
3425
|
+
}
|
|
3426
|
+
}
|
|
3396
3427
|
|
|
3397
3428
|
const scopeCheck = await collectWriteScopeWarnings(repo, planning);
|
|
3398
3429
|
for (const warning of scopeCheck.warnings) {
|