@on-par/factory-cli 0.9.18-next.9 → 0.9.19-next.1
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 -2
- package/dist/cli/detect-checks.d.ts +2 -0
- package/dist/cli/detect-checks.d.ts.map +1 -1
- package/dist/cli/detect-checks.js +13 -2
- package/dist/cli/detect-checks.js.map +1 -1
- package/dist/cli/doctor-clock-skew.d.ts +20 -0
- package/dist/cli/doctor-clock-skew.d.ts.map +1 -0
- package/dist/cli/doctor-clock-skew.js +37 -0
- package/dist/cli/doctor-clock-skew.js.map +1 -0
- package/dist/cli/doctor-health.d.ts +1 -1
- package/dist/cli/doctor-health.d.ts.map +1 -1
- package/dist/cli/doctor-health.js +7 -5
- package/dist/cli/doctor-health.js.map +1 -1
- package/dist/cli/doctor-queue-reconcile.d.ts +1 -1
- package/dist/cli/doctor-queue-reconcile.d.ts.map +1 -1
- package/dist/cli/doctor-queue-reconcile.js +7 -2
- package/dist/cli/doctor-queue-reconcile.js.map +1 -1
- package/dist/cli/doctor-verify.d.ts +3 -1
- package/dist/cli/doctor-verify.d.ts.map +1 -1
- package/dist/cli/doctor-verify.js +13 -8
- package/dist/cli/doctor-verify.js.map +1 -1
- package/dist/cli/doctor-worktree-reconcile.d.ts +8 -0
- package/dist/cli/doctor-worktree-reconcile.d.ts.map +1 -0
- package/dist/cli/doctor-worktree-reconcile.js +21 -0
- package/dist/cli/doctor-worktree-reconcile.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +15 -18
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init-files.d.ts +4 -3
- package/dist/cli/init-files.d.ts.map +1 -1
- package/dist/cli/init-files.js +15 -10
- package/dist/cli/init-files.js.map +1 -1
- package/dist/cli/json-contract.d.ts +1 -0
- package/dist/cli/json-contract.d.ts.map +1 -1
- package/dist/cli/json-contract.js +1 -0
- package/dist/cli/json-contract.js.map +1 -1
- package/dist/cli/land-behind.d.ts +8 -0
- package/dist/cli/land-behind.d.ts.map +1 -0
- package/dist/cli/land-behind.js +21 -0
- package/dist/cli/land-behind.js.map +1 -0
- package/dist/cli/land-pr.d.ts +6 -0
- package/dist/cli/land-pr.d.ts.map +1 -1
- package/dist/cli/land-pr.js +105 -50
- package/dist/cli/land-pr.js.map +1 -1
- package/dist/cli/land.d.ts +3 -0
- package/dist/cli/land.d.ts.map +1 -1
- package/dist/cli/land.js +11 -11
- package/dist/cli/land.js.map +1 -1
- package/dist/cli/lane-file-hold.d.ts +4 -0
- package/dist/cli/lane-file-hold.d.ts.map +1 -0
- package/dist/cli/lane-file-hold.js +10 -0
- package/dist/cli/lane-file-hold.js.map +1 -0
- package/dist/cli/lane-heartbeat.d.ts +31 -3
- package/dist/cli/lane-heartbeat.d.ts.map +1 -1
- package/dist/cli/lane-heartbeat.js +74 -6
- package/dist/cli/lane-heartbeat.js.map +1 -1
- package/dist/cli/lane-park-comment.d.ts.map +1 -1
- package/dist/cli/lane-park-comment.js +2 -1
- package/dist/cli/lane-park-comment.js.map +1 -1
- package/dist/cli/lane-pause.d.ts +6 -1
- package/dist/cli/lane-pause.d.ts.map +1 -1
- package/dist/cli/lane-pause.js +30 -0
- package/dist/cli/lane-pause.js.map +1 -1
- package/dist/cli/queue-preflight.d.ts +4 -2
- package/dist/cli/queue-preflight.d.ts.map +1 -1
- package/dist/cli/queue-preflight.js +1 -1
- package/dist/cli/queue-preflight.js.map +1 -1
- package/dist/cli/queue-startup.d.ts +55 -0
- package/dist/cli/queue-startup.d.ts.map +1 -1
- package/dist/cli/queue-startup.js +78 -2
- package/dist/cli/queue-startup.js.map +1 -1
- package/dist/cli/reset.d.ts.map +1 -1
- package/dist/cli/reset.js +4 -4
- package/dist/cli/reset.js.map +1 -1
- package/dist/cli/run-branch.js +1 -1
- package/dist/cli/run-branch.js.map +1 -1
- package/dist/cli/run-lane-deps.d.ts +6 -0
- package/dist/cli/run-lane-deps.d.ts.map +1 -1
- package/dist/cli/run-lane-load-hold.d.ts +14 -0
- package/dist/cli/run-lane-load-hold.d.ts.map +1 -0
- package/dist/cli/run-lane-load-hold.js +22 -0
- package/dist/cli/run-lane-load-hold.js.map +1 -0
- package/dist/cli/run-lane-restack.d.ts +13 -0
- package/dist/cli/run-lane-restack.d.ts.map +1 -0
- package/dist/cli/run-lane-restack.js +21 -0
- package/dist/cli/run-lane-restack.js.map +1 -0
- package/dist/cli/run-lane.d.ts.map +1 -1
- package/dist/cli/run-lane.js +32 -48
- package/dist/cli/run-lane.js.map +1 -1
- package/dist/cli/run.d.ts +1 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +12 -11
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/ship-run-state.d.ts +5 -0
- package/dist/cli/ship-run-state.d.ts.map +1 -1
- package/dist/cli/ship-run-state.js +18 -1
- package/dist/cli/ship-run-state.js.map +1 -1
- package/dist/cli/ship.d.ts +2 -0
- package/dist/cli/ship.d.ts.map +1 -1
- package/dist/cli/ship.js +7 -14
- package/dist/cli/ship.js.map +1 -1
- package/dist/cli/steer.js +3 -3
- package/dist/cli/steer.js.map +1 -1
- package/dist/cli/unpark.d.ts.map +1 -1
- package/dist/cli/unpark.js +4 -2
- package/dist/cli/unpark.js.map +1 -1
- package/package.json +4 -4
- package/schemas/logs-line.schema.json +5 -0
package/dist/cli/land.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
// packages/cli/src/cli/land.ts — issue-level land flow: resolve the PR, honor the merge gate, land it (#2784)
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
|
-
import { LaneFileGuard,
|
|
3
|
+
import { LaneFileGuard, resolveMergePolicy, resolveSandboxPolicy, workKeyFromIssue } from '@on-par/factory-core';
|
|
4
4
|
import { branchFor, factoryBranchPrefixes, getIssueTitle, isAutoMergeBlocked, LEGACY_BRANCH_PREFIX, logEvent, lookupOpenPrByBranch, lookupOpenPrByIssue, publishRiskReceipt, releaseLaneClaim, resolveEffectiveConfig, resolveFilingPolicy, resolveTrustTier, withFileLock, withGitLock, worktreeSandboxFor, } from '@on-par/factory-core/internal';
|
|
5
|
-
import { AwaitMergeStoppedError, AwaitingReviewError, LandConflictError, LandFailureError, MergeGatedError, isLandLeftOpen, landOpenPullRequest, } from './land-pr.js';
|
|
5
|
+
import { AwaitMergeStoppedError, AwaitingReviewError, LandConflictError, LandFailureError, MergeGatedError, defaultListIssueLabels, isLandLeftOpen, landOpenPullRequest, } from './land-pr.js';
|
|
6
6
|
import { enforceRiskAtLand } from './land-risk.js';
|
|
7
7
|
import { landRuntime } from './land-runtime.js';
|
|
8
8
|
import { riskPolicyLines } from './risk-policy.js';
|
|
9
|
+
import { touchIssueActivity } from './ship-run-state.js';
|
|
9
10
|
async function releaseLandedClaim(paths, ghRepo, issue, log) {
|
|
10
11
|
if (!paths.laneFiles)
|
|
11
12
|
return;
|
|
12
|
-
await releaseLaneClaim(new LaneFileGuard(paths.laneFiles), ghRepo, issue, log);
|
|
13
|
+
await releaseLaneClaim(new LaneFileGuard(paths.laneFiles), ghRepo, workKeyFromIssue(issue), log);
|
|
13
14
|
}
|
|
14
15
|
export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skipCI, branchPrefix, opts = {}) {
|
|
15
16
|
const { configLoaders, gitOps, errorDetail, worktreePathFor } = landRuntime();
|
|
@@ -41,7 +42,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
|
|
|
41
42
|
};
|
|
42
43
|
[, lookup] = await Promise.all([gitOps.gitFetch(repoRoot), findByGuess()]);
|
|
43
44
|
if (lookup.status === 'none' && !opts.branch) {
|
|
44
|
-
lookup = await lookupOpenPrByIssue({ octokit, repo: ghRepo, issue: issueNum });
|
|
45
|
+
lookup = await lookupOpenPrByIssue({ octokit, repo: ghRepo, issue: workKeyFromIssue(issueNum) });
|
|
45
46
|
}
|
|
46
47
|
if (lookup.status === 'error')
|
|
47
48
|
throw new Error(lookup.detail);
|
|
@@ -153,6 +154,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
|
|
|
153
154
|
log,
|
|
154
155
|
skipCI,
|
|
155
156
|
syncMain: opts.syncMain,
|
|
157
|
+
signal: opts.signal,
|
|
156
158
|
adminMerge: resolveMergePolicy(landFactoryConfig).admin,
|
|
157
159
|
withLock: withLandLock,
|
|
158
160
|
ensureWorktree: async () => {
|
|
@@ -173,7 +175,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
|
|
|
173
175
|
await withLandLock(() => gitOps.cleanupWorktree(repoRoot, worktree, log, worktreeSandbox));
|
|
174
176
|
}
|
|
175
177
|
catch (err) {
|
|
176
|
-
if (err instanceof LandConflictError || isLandLeftOpen(err))
|
|
178
|
+
if (err instanceof LandConflictError || isLandLeftOpen(err) || opts.signal?.aborted)
|
|
177
179
|
throw err;
|
|
178
180
|
log('fail', `merge failed: ${err.message}`);
|
|
179
181
|
throw new LandFailureError(`merge failed for issue #${issueNum}: ${err.message}`, 5);
|
|
@@ -254,12 +256,8 @@ export function isPermanentMergeCheckError(err) {
|
|
|
254
256
|
return false;
|
|
255
257
|
return !looksRateLimited(err);
|
|
256
258
|
}
|
|
257
|
-
async function defaultListIssueLabels(octokit, owner, repo, issue) {
|
|
258
|
-
const { data } = await octokit.rest.issues.listLabelsOnIssue({ owner, repo, issue_number: issue });
|
|
259
|
-
return data.map((label) => label.name);
|
|
260
|
-
}
|
|
261
259
|
export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps = {}) {
|
|
262
|
-
const { createOctokit = landRuntime().getOctokit, pathExists = existsSync, checkMerged = isPrMerged, lookupPr = latestPrForBranch, loadConfig = landRuntime().configLoaders.loadFactoryConfigForRepo, land = landIssue, listIssueLabels = defaultListIssueLabels, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), emitEvent = logEvent, mergeEnabled, writeLine = (line) => console.log(line), now = () => Date.now(), mergeOverrides, landBranch, syncMain, } = deps;
|
|
260
|
+
const { createOctokit = landRuntime().getOctokit, pathExists = existsSync, checkMerged = isPrMerged, lookupPr = latestPrForBranch, loadConfig = landRuntime().configLoaders.loadFactoryConfigForRepo, land = landIssue, listIssueLabels = defaultListIssueLabels, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), emitEvent = logEvent, mergeEnabled, writeLine = (line) => console.log(line), now = () => Date.now(), mergeOverrides, landBranch, syncMain, signal, } = deps;
|
|
263
261
|
const { configLoaders, errorDetail, LaneParkError } = landRuntime();
|
|
264
262
|
const factoryConfig = loadConfig(paths.config);
|
|
265
263
|
const isMergeEnabled = mergeEnabled ?? (() => resolveMergePolicy(factoryConfig, process.env, mergeOverrides).auto);
|
|
@@ -271,10 +269,11 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
|
|
|
271
269
|
let consecutiveFailures = 0;
|
|
272
270
|
let firstFailureAt = null;
|
|
273
271
|
while (!pathExists(paths.stop)) {
|
|
272
|
+
signal?.throwIfAborted();
|
|
274
273
|
// The merge wait logs nothing on its happy path, so each poll bumps the per-issue heartbeat:
|
|
275
274
|
// status/TUI staleness rules (ADR-0086, ADR-0093) otherwise read a live wait as a dead run.
|
|
276
275
|
if (paths.runs)
|
|
277
|
-
|
|
276
|
+
touchIssueActivity(paths.runs, issue).catch(() => { });
|
|
278
277
|
let merged = false;
|
|
279
278
|
try {
|
|
280
279
|
merged = await checkMerged(octokit, owner, repoName, branch);
|
|
@@ -322,6 +321,7 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
|
|
|
322
321
|
...(landBranch ? { branch: landBranch } : {}),
|
|
323
322
|
enforceRisk: true,
|
|
324
323
|
...(syncMain ? { syncMain } : {}),
|
|
324
|
+
...(signal ? { signal } : {}),
|
|
325
325
|
});
|
|
326
326
|
await releaseLandedClaim(paths, ghRepo, issue, (type, msg) => emitEvent(paths.events, type, issue, msg));
|
|
327
327
|
return;
|
package/dist/cli/land.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"land.js","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"land.js","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { LaneFileHoldLookup } from './queue-preflight.js';
|
|
2
|
+
/** The queue preflight (out of scope for the WorkKey migration) still speaks issue numbers. */
|
|
3
|
+
export declare function laneFileHoldLookup(laneFiles: string, ghRepo: string): LaneFileHoldLookup;
|
|
4
|
+
//# sourceMappingURL=lane-file-hold.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-file-hold.d.ts","sourceRoot":"","sources":["../../src/cli/lane-file-hold.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAKxF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// packages/cli/src/cli/lane-file-hold.ts — numeric adapter from the WorkKey-based lane-file guard to the queue preflight's hold lookup (ADR-0168).
|
|
2
|
+
import { issueNumberOf, LaneFileGuard, workKeyFromIssue } from '@on-par/factory-core';
|
|
3
|
+
/** The queue preflight (out of scope for the WorkKey migration) still speaks issue numbers. */
|
|
4
|
+
export function laneFileHoldLookup(laneFiles, ghRepo) {
|
|
5
|
+
return async (n) => {
|
|
6
|
+
const hold = await new LaneFileGuard(laneFiles).liveHold(ghRepo, workKeyFromIssue(n));
|
|
7
|
+
return hold && { holder: issueNumberOf(hold.holder), file: hold.file };
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=lane-file-hold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-file-hold.js","sourceRoot":"","sources":["../../src/cli/lane-file-hold.ts"],"names":[],"mappings":"AAAA,mJAAmJ;AACnJ,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAItF,+FAA+F;AAC/F,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,MAAc;IAClE,OAAO,KAAK,EAAE,CAAC,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,IAAI,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,35 @@
|
|
|
1
|
+
import type { logEvent } from '@on-par/factory-core/internal';
|
|
2
|
+
/** The issue's claim is no longer ours: the queue said it is gone ('released'), or renewals
|
|
3
|
+
* kept failing past the last confirmed expiry ('lapsed') (#3146). */
|
|
4
|
+
export declare class ClaimLostError extends Error {
|
|
5
|
+
readonly issue: number;
|
|
6
|
+
readonly kind: 'released' | 'lapsed';
|
|
7
|
+
constructor(issue: number, kind: 'released' | 'lapsed');
|
|
8
|
+
}
|
|
9
|
+
/** Lease health of one in-flight issue. `signal` aborts (with the ClaimLostError) once the claim is lost. */
|
|
10
|
+
export interface ClaimLease {
|
|
11
|
+
readonly signal: AbortSignal;
|
|
12
|
+
readonly lost: ClaimLostError | undefined;
|
|
13
|
+
renewed(result: unknown): void;
|
|
14
|
+
renewFailed(err: unknown): void;
|
|
15
|
+
}
|
|
16
|
+
/** Tracks one issue's lease. Only a strict `false` heartbeat result means lost; a thrown renewal is
|
|
17
|
+
* counted and logged, and the lease is lost once `now()` passes the last confirmed expiry. */
|
|
18
|
+
export declare function createClaimLease(issue: number, opts: {
|
|
19
|
+
leaseMs: number;
|
|
20
|
+
now: () => number;
|
|
21
|
+
onRenewFailed: (failures: number, err: unknown) => void;
|
|
22
|
+
}): ClaimLease;
|
|
23
|
+
/** The `onRenewFailed` for a lane's lease: one `lease_renew_failed` event per failed renewal, with the consecutive count. */
|
|
24
|
+
export declare function laneRenewLogger(emit: typeof logEvent, eventsFile: string, lane: string, issue: number): (failures: number, err: unknown) => void;
|
|
25
|
+
/** Emits `claim_lost` for a lane that no longer holds `err.issue`'s claim (#3146). The caller must not release,
|
|
26
|
+
* park or reap: another host owns the issue now, and the worktree is kept. */
|
|
27
|
+
export declare function onClaimLost(err: ClaimLostError, emit: typeof logEvent, eventsFile: string, lane: string, hostId: string, runId: string): void;
|
|
1
28
|
/** Runs `work` while periodically calling `heartbeat(issue)` so a long-running ship or
|
|
2
|
-
* merge wait keeps this claimant's lease fresh.
|
|
3
|
-
*
|
|
29
|
+
* merge wait keeps this claimant's lease fresh. With a `lease`, every tick result feeds it: a single
|
|
30
|
+
* failed refresh is logged but does not abort, while a lost claim aborts `work`'s signal and
|
|
31
|
+
* surfaces as ClaimLostError (#3146). Before returning or rethrowing, the
|
|
4
32
|
* timer is cleared and any in-flight tick is awaited, so no heartbeat write overlaps the
|
|
5
33
|
* caller's release of the claim (#3423). */
|
|
6
|
-
export declare function withHeartbeat<T>(issue: number, heartbeat: ((issue: number) => Promise<unknown>) | undefined, work: () => Promise<T
|
|
34
|
+
export declare function withHeartbeat<T>(issue: number, heartbeat: ((issue: number) => Promise<unknown>) | undefined, work: (signal: AbortSignal) => Promise<T>, lease?: ClaimLease): Promise<T>;
|
|
7
35
|
//# sourceMappingURL=lane-heartbeat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lane-heartbeat.d.ts","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lane-heartbeat.d.ts","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAS9D;sEACsE;AACtE,qBAAa,cAAe,SAAQ,KAAK;IAErC,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,QAAQ;IAFtC,YACW,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,UAAU,GAAG,QAAQ,EAIrC;CACF;AAED,6GAA6G;AAC7G,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1C,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED;+FAC+F;AAC/F,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,MAAM,CAAC;IAAC,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GACpG,UAAU,CA4BZ;AAED,6HAA6H;AAC7H,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAS1C;AAED;+EAC+E;AAC/E,wBAAgB,WAAW,CACzB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,OAAO,QAAQ,EACrB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,IAAI,CASN;AAED;;;;;6CAK6C;AAC7C,wBAAsB,aAAa,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,EAC5D,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,KAAK,CAAC,EAAE,UAAU,GACjB,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
|
|
@@ -1,29 +1,97 @@
|
|
|
1
1
|
// src/cli/lane-heartbeat.ts — claim-lease heartbeat around an in-flight issue, split from run-lane.ts
|
|
2
|
+
import { shipRuntime } from './ship-runtime.js';
|
|
2
3
|
/** How often an in-flight issue's claim lease is refreshed (#1500). Well inside the
|
|
3
4
|
* 15-minute default lease (github-queue.ts's DEFAULT_CLAIM_LEASE_MS) so a normal poll
|
|
4
5
|
* cadence never lets the lease lapse mid-ship. */
|
|
5
6
|
const HEARTBEAT_INTERVAL_MS = 5 * 60 * 1000;
|
|
7
|
+
/** The issue's claim is no longer ours: the queue said it is gone ('released'), or renewals
|
|
8
|
+
* kept failing past the last confirmed expiry ('lapsed') (#3146). */
|
|
9
|
+
export class ClaimLostError extends Error {
|
|
10
|
+
issue;
|
|
11
|
+
kind;
|
|
12
|
+
constructor(issue, kind) {
|
|
13
|
+
super(`claim on #${issue} lost (${kind})`);
|
|
14
|
+
this.issue = issue;
|
|
15
|
+
this.kind = kind;
|
|
16
|
+
this.name = 'ClaimLostError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** Tracks one issue's lease. Only a strict `false` heartbeat result means lost; a thrown renewal is
|
|
20
|
+
* counted and logged, and the lease is lost once `now()` passes the last confirmed expiry. */
|
|
21
|
+
export function createClaimLease(issue, opts) {
|
|
22
|
+
const controller = new AbortController();
|
|
23
|
+
let confirmedExpiry = opts.now() + opts.leaseMs;
|
|
24
|
+
let failures = 0;
|
|
25
|
+
let lost;
|
|
26
|
+
const lose = (kind) => {
|
|
27
|
+
if (lost)
|
|
28
|
+
return;
|
|
29
|
+
lost = new ClaimLostError(issue, kind);
|
|
30
|
+
controller.abort(lost);
|
|
31
|
+
};
|
|
32
|
+
return {
|
|
33
|
+
signal: controller.signal,
|
|
34
|
+
get lost() {
|
|
35
|
+
return lost;
|
|
36
|
+
},
|
|
37
|
+
renewed(result) {
|
|
38
|
+
if (lost)
|
|
39
|
+
return;
|
|
40
|
+
if (result === false)
|
|
41
|
+
return lose('released');
|
|
42
|
+
confirmedExpiry = opts.now() + opts.leaseMs;
|
|
43
|
+
failures = 0;
|
|
44
|
+
},
|
|
45
|
+
renewFailed(err) {
|
|
46
|
+
if (lost)
|
|
47
|
+
return;
|
|
48
|
+
failures++;
|
|
49
|
+
opts.onRenewFailed(failures, err);
|
|
50
|
+
if (opts.now() >= confirmedExpiry)
|
|
51
|
+
lose('lapsed');
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/** The `onRenewFailed` for a lane's lease: one `lease_renew_failed` event per failed renewal, with the consecutive count. */
|
|
56
|
+
export function laneRenewLogger(emit, eventsFile, lane, issue) {
|
|
57
|
+
return (failures, err) => emit(eventsFile, 'lease_renew_failed', issue, `claim lease renewal for #${issue} failed (${failures} consecutive): ${shipRuntime().errorDetail(err)}`, { lane });
|
|
58
|
+
}
|
|
59
|
+
/** Emits `claim_lost` for a lane that no longer holds `err.issue`'s claim (#3146). The caller must not release,
|
|
60
|
+
* park or reap: another host owns the issue now, and the worktree is kept. */
|
|
61
|
+
export function onClaimLost(err, emit, eventsFile, lane, hostId, runId) {
|
|
62
|
+
const { issue, kind } = err;
|
|
63
|
+
emit(eventsFile, 'claim_lost', issue, `claim on #${issue} lost (${kind}) for host ${hostId}, run ${runId}; stopped before push/PR/merge; worktree kept, issue not released`, { lane, claimLost: { hostId, issue, runId, kind } });
|
|
64
|
+
}
|
|
6
65
|
/** Runs `work` while periodically calling `heartbeat(issue)` so a long-running ship or
|
|
7
|
-
* merge wait keeps this claimant's lease fresh.
|
|
8
|
-
*
|
|
66
|
+
* merge wait keeps this claimant's lease fresh. With a `lease`, every tick result feeds it: a single
|
|
67
|
+
* failed refresh is logged but does not abort, while a lost claim aborts `work`'s signal and
|
|
68
|
+
* surfaces as ClaimLostError (#3146). Before returning or rethrowing, the
|
|
9
69
|
* timer is cleared and any in-flight tick is awaited, so no heartbeat write overlaps the
|
|
10
70
|
* caller's release of the claim (#3423). */
|
|
11
|
-
export async function withHeartbeat(issue, heartbeat, work) {
|
|
71
|
+
export async function withHeartbeat(issue, heartbeat, work, lease) {
|
|
72
|
+
if (lease?.lost)
|
|
73
|
+
throw lease.lost;
|
|
74
|
+
const signal = lease?.signal ?? new AbortController().signal;
|
|
12
75
|
if (!heartbeat)
|
|
13
|
-
return work();
|
|
76
|
+
return work(signal);
|
|
14
77
|
let inFlight;
|
|
15
78
|
const timer = setInterval(() => {
|
|
16
79
|
if (inFlight)
|
|
17
80
|
return;
|
|
18
81
|
inFlight = Promise.resolve()
|
|
19
82
|
.then(() => heartbeat(issue))
|
|
20
|
-
.then(() =>
|
|
83
|
+
.then((result) => lease?.renewed(result), (err) => lease?.renewFailed(err))
|
|
21
84
|
.finally(() => {
|
|
22
85
|
inFlight = undefined;
|
|
23
86
|
});
|
|
24
87
|
}, HEARTBEAT_INTERVAL_MS);
|
|
25
88
|
try {
|
|
26
|
-
return await work();
|
|
89
|
+
return await work(signal);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
if (lease?.lost)
|
|
93
|
+
throw lease.lost;
|
|
94
|
+
throw err;
|
|
27
95
|
}
|
|
28
96
|
finally {
|
|
29
97
|
clearInterval(timer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lane-heartbeat.js","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"AAAA,sGAAsG;
|
|
1
|
+
{"version":3,"file":"lane-heartbeat.js","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lane-park-comment.d.ts","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lane-park-comment.d.ts","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAK7C;kGACkG;AAClG,wBAAsB,qBAAqB,CACzC,UAAU,EAAE,MAAM,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GACvD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B;AAED,KAAK,sBAAsB,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD,CAAC;AAEF;gEACgE;AAChE,eAAO,MAAM,iBAAiB,SACrB,sBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,aAC/D,MAAM,UAAU,UAAU,WAAW,MAAM,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAOxF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// packages/cli/src/cli/lane-park-comment.ts — upsert the issue park comment for a park raised outside runIssue (#3534)
|
|
2
|
+
import { workKeyFromIssue } from '@on-par/factory-core';
|
|
2
3
|
import { publishParkComment } from '@on-par/factory-core/internal';
|
|
3
4
|
const failure = (issue, detail) => `could not post the issue park comment for #${issue}: ${detail}`;
|
|
4
5
|
/** Upserts the single `factory-issue-state` comment. Fail-closed: returns the warning text
|
|
@@ -19,7 +20,7 @@ export const laneParkCommenter = (opts, warn) => async (issue, reason, message,
|
|
|
19
20
|
if (!getOctokit)
|
|
20
21
|
return;
|
|
21
22
|
const readHead = () => (branch ? readParkSha(branch) : Promise.reject(new Error('no branch')));
|
|
22
|
-
const input = { issue, reason, message, runId, branch: branch || '-', lane, blockers: [] };
|
|
23
|
+
const input = { issue: workKeyFromIssue(issue), reason, message, runId, branch: branch || '-', lane, blockers: [] };
|
|
23
24
|
const failed = await tryPublishParkComment(getOctokit, ghRepo, repoRoot, readHead, input);
|
|
24
25
|
if (failed)
|
|
25
26
|
warn(issue, failed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lane-park-comment.js","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAAA,uHAAuH;
|
|
1
|
+
{"version":3,"file":"lane-park-comment.js","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAEvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,MAAc,EAAU,EAAE,CACzD,8CAA8C,KAAK,KAAK,MAAM,EAAE,CAAC;AAEnE;kGACkG;AAClG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAyB,EACzB,IAAY,EACZ,QAAgB,EAChB,QAA+B,EAC/B,KAAwD;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAWD;gEACgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,IAA4B,EAAE,IAA8C,EAAE,EAAE,CACjF,KAAK,EAAE,KAAa,EAAE,MAAkB,EAAE,OAAe,EAAE,MAAe,EAAiB,EAAE;IAC3F,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACxE,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACpH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1F,IAAI,MAAM;QAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
package/dist/cli/lane-pause.d.ts
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import type { getFactoryPaths, LanePausedPayload, ProviderBreaker } from '@on-par/factory-core';
|
|
1
|
+
import type { getFactoryPaths, LanePausedPayload, ProviderBreaker, RunOutcome } from '@on-par/factory-core';
|
|
2
2
|
import type { logEvent } from '@on-par/factory-core/internal';
|
|
3
3
|
import type { LaneEnvironmentPauseError } from './lane-environment-pause-error.js';
|
|
4
|
+
type AllProvidersDownPayload = NonNullable<Extract<RunOutcome, {
|
|
5
|
+
reason: 'provider-cap';
|
|
6
|
+
}>['allProvidersDown']>;
|
|
4
7
|
type LanePauseContext = {
|
|
5
8
|
lane: string;
|
|
6
9
|
paths: ReturnType<typeof getFactoryPaths>;
|
|
7
10
|
emitEvent: typeof logEvent;
|
|
11
|
+
now?: () => Date;
|
|
8
12
|
};
|
|
9
13
|
export declare function renderLanePausedComment(payload: LanePausedPayload): string;
|
|
10
14
|
/** Persists the base hold and emits the environment lane-paused event for a broken base (#1928). */
|
|
@@ -13,6 +17,7 @@ export declare function pauseLaneForBrokenBase(ctx: LanePauseContext, issue: num
|
|
|
13
17
|
export declare function pauseLaneForProviderCap(ctx: LanePauseContext, issue: number, cap: {
|
|
14
18
|
providers: string[];
|
|
15
19
|
resetAt: string;
|
|
20
|
+
allProvidersDown?: AllProvidersDownPayload;
|
|
16
21
|
}): void;
|
|
17
22
|
/** Waits (STOP-aware, in slices) until `until` epoch ms; true when the STOP file ended the wait (#3226). */
|
|
18
23
|
export declare function waitForProviderReset(ctx: LanePauseContext, until: number | undefined, now: () => Date, sleep: (ms: number) => Promise<void>, pathExists: (path: string) => boolean): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lane-pause.d.ts","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lane-pause.d.ts","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/lane-pause.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// packages/cli/src/cli/lane-pause.ts — the lane-paused event, base hold, and comment, moved out of run-lane.ts
|
|
2
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
2
4
|
import { BASE_HOLD_CI_RECHECK_MS, writeBaseHold } from './base-hold.js';
|
|
3
5
|
export function renderLanePausedComment(payload) {
|
|
4
6
|
const checks = payload.failingChecks.length
|
|
@@ -38,9 +40,37 @@ export function pauseLaneForBrokenBase(ctx, issue, err, ghRepo, now) {
|
|
|
38
40
|
};
|
|
39
41
|
emitEvent(paths.events, 'lane-paused', lane, `lane '${lane}' paused: #${issue} failed only on checkers that also fail on base ${err.baseSha.slice(0, 8)} (${err.failingChecks.join(', ')}); #${issue} released to queued`, { lane, lanePaused: payload });
|
|
40
42
|
}
|
|
43
|
+
/** Latch for the all_providers_down alert (#3340): false only when the same reset is already announced and still ahead.
|
|
44
|
+
* Any read or parse error fails open (emit); the write is best-effort. */
|
|
45
|
+
function shouldAlertAllProvidersDown(file, nextAvailableAt, nowMs) {
|
|
46
|
+
try {
|
|
47
|
+
const stored = JSON.parse(readFileSync(file, 'utf8'));
|
|
48
|
+
const prior = typeof stored === 'object' && stored !== null
|
|
49
|
+
? stored.nextAvailableAt
|
|
50
|
+
: undefined;
|
|
51
|
+
if (prior === nextAvailableAt && Date.parse(nextAvailableAt) > nowMs)
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
catch { }
|
|
55
|
+
try {
|
|
56
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
57
|
+
writeFileSync(file, JSON.stringify({ nextAvailableAt, at: new Date(nowMs).toISOString() }));
|
|
58
|
+
}
|
|
59
|
+
catch { }
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
41
62
|
/** Emits the provider-cap lane-paused event: the issue went back to queued and claiming resumes at `resetAt` (#3226). */
|
|
42
63
|
export function pauseLaneForProviderCap(ctx, issue, cap) {
|
|
43
64
|
const { lane, paths, emitEvent } = ctx;
|
|
65
|
+
const down = cap.allProvidersDown;
|
|
66
|
+
const nowMs = (ctx.now ?? (() => new Date()))().getTime();
|
|
67
|
+
if (down?.nextAvailableAt &&
|
|
68
|
+
shouldAlertAllProvidersDown(join(paths.state, 'all-providers-down.json'), down.nextAvailableAt, nowMs)) {
|
|
69
|
+
const list = down.providers
|
|
70
|
+
.map((p) => `${p.provider} (${p.reason}${p.until ? `, until ${p.until}` : ''})`)
|
|
71
|
+
.join(', ');
|
|
72
|
+
emitEvent(paths.events, 'all_providers_down', issue, `every ${down.stage.toUpperCase()} provider is down (${down.detail}): ${list} — no model call; #${issue} released to queued until ${down.nextAvailableAt}`, { lane, allProvidersDown: down });
|
|
73
|
+
}
|
|
44
74
|
const payload = {
|
|
45
75
|
lane,
|
|
46
76
|
signature: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lane-pause.js","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"AAAA,+GAA+G;
|
|
1
|
+
{"version":3,"file":"lane-pause.js","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAE/G,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAK1C,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAYxE,MAAM,UAAU,uBAAuB,CAAC,OAA0B;IAChE,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM;QACzC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACzD,CAAC,CAAC,eAAe,CAAC;IACpB,OAAO;QACL,SAAS,OAAO,CAAC,IAAI,gCAAgC,OAAO,CAAC,UAAU,+FAA+F;QACtK,0BAA0B,MAAM,EAAE;QAClC,6GAA6G,OAAO,CAAC,IAAI,IAAI;QAC7H,wBAAwB,OAAO,CAAC,SAAS,IAAI;KAC9C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjB,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,sBAAsB,CACpC,GAAqB,EACrB,KAAa,EACb,GAA8B,EAC9B,MAAc,EACd,GAAe;IAEf,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IACvC,gFAAgF;IAChF,kDAAkD;IAClD,IAAI,CAAC;QACH,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC/B,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,uBAAuB,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChH,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,MAAM,OAAO,GAAsB;QACjC,IAAI;QACJ,SAAS,EAAE,GAAG,CAAC,gBAAgB,IAAI,EAAE;QACrC,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;IACF,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,aAAa,EACb,IAAI,EACJ,SAAS,IAAI,cAAc,KAAK,mDAAmD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,qBAAqB,EAC5K,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAC9B,CAAC;AACJ,CAAC;AAED;2EAC2E;AAC3E,SAAS,2BAA2B,CAAC,IAAY,EAAE,eAAuB,EAAE,KAAa;IACvF,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,MAAM,KAAK,GACT,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAC3C,CAAC,CAAE,MAAwC,CAAC,eAAe;YAC3D,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,KAAK,KAAK,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,KAAK;YAAE,OAAO,KAAK,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,uBAAuB,CACrC,GAAqB,EACrB,KAAa,EACb,GAAyF;IAEzF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC;IAClC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1D,IACE,IAAI,EAAE,eAAe;QACrB,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,yBAAyB,CAAC,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,EACtG,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;aAC/E,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,oBAAoB,EACpB,KAAK,EACL,SAAS,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,sBAAsB,IAAI,CAAC,MAAM,MAAM,IAAI,sBAAsB,KAAK,6BAA6B,IAAI,CAAC,eAAe,EAAE,EAC1J,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CACjC,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAsB;QACjC,IAAI;QACJ,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;IACF,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,aAAa,EACb,IAAI,EACJ,SAAS,IAAI,iCAAiC,KAAK,uBAAuB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,4CAA4C,GAAG,CAAC,OAAO,EAAE,EACvK,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAC9B,CAAC;AACJ,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAqB,EACrB,KAAyB,EACzB,GAAe,EACf,KAAoC,EACpC,UAAqC;IAErC,OAAO,KAAK,KAAK,SAAS,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QACtD,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAEjD,wIAAwI;AACxI,MAAM,UAAU,4BAA4B,CAC1C,GAAqB,EACrB,KAAa,EACb,IAA4D;IAE5D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IACvC,MAAM,OAAO,GAAsB;QACjC,IAAI;QACJ,SAAS,EAAE,EAAE;QACb,aAAa,EAAE,EAAE;QACjB,UAAU,EAAE,KAAK;QACjB,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC;IACF,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,aAAa,EACb,IAAI,EACJ,SAAS,IAAI,mBAAmB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,0CAA0C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,OAAO,KAAK,qJAAqJ,EAC3S,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAC9B,CAAC;AACJ,CAAC;AAED;2FAC2F;AAC3F,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,GAAqB,EACrB,KAAmD,EACnD,IAKC;IAED,MAAM,MAAM,GAAG,KAAK,EAAE,QAAgB,EAAoB,EAAE;QAC1D,IAAI,CAAC;YACH,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,SAAS,CAAC;QACR,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,SAAS;YAAE,IAAI,MAAM,MAAM,CAAC,QAAQ,CAAC;gBAAE,OAAO,KAAK,CAAC;QACjF,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAC3D,MAAM,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAqB,EACrB,MAA0E,EAC1E,KAAa,EACb,MAAgB,EAChB,YAA4D;IAE5D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC;IACvC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACpF,MAAM,OAAO,GAAsB;QACjC,IAAI;QACJ,SAAS,EAAE,aAAa;QACxB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5D,UAAU;QACV,WAAW,EAAE,KAAK;KACnB,CAAC;IACF,SAAS,CACP,KAAK,CAAC,MAAM,EACZ,aAAa,EACb,IAAI,EACJ,SAAS,IAAI,cAAc,OAAO,CAAC,UAAU,SAAS,OAAO,CAAC,WAAW,4CAA4C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB,GAAG,EAC/K,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAC9B,CAAC;IACF,mGAAmG;IACnG,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC5F,CAAC"}
|
|
@@ -10,6 +10,8 @@ export interface OpenPullRequestEvidence {
|
|
|
10
10
|
headRepoFullName: string | null;
|
|
11
11
|
}
|
|
12
12
|
/** A slice PR's state as the queue preflight sees it (ADR-0147). */
|
|
13
|
+
/** Why a queued issue was deferred, when a caller needs to tell causes apart (#3660). */
|
|
14
|
+
export type QueueDeferCause = 'open-prerequisites';
|
|
13
15
|
export type SlicePullState = 'open' | 'merged' | 'closed';
|
|
14
16
|
/** Reports the in-flight issue holding a file this issue needs, if any. */
|
|
15
17
|
export type LaneFileHoldLookup = (issue: number) => Promise<{
|
|
@@ -40,7 +42,7 @@ export interface QueuePreflightOps {
|
|
|
40
42
|
}>;
|
|
41
43
|
/** #3375: number of a PR that closes `issue` by reference, merged into the default branch and not reverted by a merged `Reverts owner/repo#N` PR; undefined when none. */
|
|
42
44
|
getMergedClosingPr(issue: number): Promise<number | undefined>;
|
|
43
|
-
onDeferred?: (issue: number, message: string) => void;
|
|
45
|
+
onDeferred?: (issue: number, message: string, cause?: QueueDeferCause) => void;
|
|
44
46
|
/** #3576: the in-flight issue and file this issue was deferred behind, while that claim is still live; undefined when none. */
|
|
45
47
|
laneFileHold?: LaneFileHoldLookup;
|
|
46
48
|
/** Backoff before each merge-state re-read (#3323). Defaults to setTimeout. */
|
|
@@ -58,7 +60,7 @@ export declare function makeQueuePreflightOps(octokit: Octokit, owner: string, r
|
|
|
58
60
|
watch: (ref: string) => Promise<CiOutcome>;
|
|
59
61
|
autoMergeStack?: boolean;
|
|
60
62
|
stackMode?: boolean;
|
|
61
|
-
onDeferred?: (issue: number, message: string) => void;
|
|
63
|
+
onDeferred?: (issue: number, message: string, cause?: QueueDeferCause) => void;
|
|
62
64
|
laneFileHold?: LaneFileHoldLookup;
|
|
63
65
|
sleep?: (ms: number) => Promise<void>;
|
|
64
66
|
}): QueuePreflightOps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-preflight.d.ts","sourceRoot":"","sources":["../../src/cli/queue-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,SAAS,EACT,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAUvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGvD,gHAAgH;AAChH,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAA2B,CAAC;AAItF,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1D,2EAA2E;AAC3E,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,CAAC;AAE1G,MAAM,WAAW,iBAAiB;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CAAC;IACxE,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC3E,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,sEAAsE;IACtE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC9D,0EAA0E;IAC1E,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,yDAAyD;IACzD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,2HAA2H;IAC3H,cAAc,EAAE,OAAO,CAAC;IACxB,2KAA2K;IAC3K,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrG,0KAA0K;IAC1K,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"queue-preflight.d.ts","sourceRoot":"","sources":["../../src/cli/queue-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -350,7 +350,7 @@ export async function preflightQueuedIssue(issue, deps) {
|
|
|
350
350
|
if (closedUnmerged.length > 0)
|
|
351
351
|
return { kind: 'park', reason: `prerequisite #${closedUnmerged[0]} closed unmerged` };
|
|
352
352
|
if (open.length > 0) {
|
|
353
|
-
deps.onDeferred?.(issue.number, `waiting for prerequisites: ${open.map((number) => `#${number}`).join(', ')}
|
|
353
|
+
deps.onDeferred?.(issue.number, `waiting for prerequisites: ${open.map((number) => `#${number}`).join(', ')}`, 'open-prerequisites');
|
|
354
354
|
return { kind: 'defer' };
|
|
355
355
|
}
|
|
356
356
|
const slice = await preflightSlice(issue.number, deps);
|