@on-par/factory-cli 0.9.18-next.2 → 0.9.18-next.20

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 (135) hide show
  1. package/dist/cli/awaiting-ci-recheck.d.ts +31 -0
  2. package/dist/cli/awaiting-ci-recheck.d.ts.map +1 -0
  3. package/dist/cli/awaiting-ci-recheck.js +61 -0
  4. package/dist/cli/awaiting-ci-recheck.js.map +1 -0
  5. package/dist/cli/awaiting-ci-wiring.d.ts +6 -0
  6. package/dist/cli/awaiting-ci-wiring.d.ts.map +1 -0
  7. package/dist/cli/awaiting-ci-wiring.js +45 -0
  8. package/dist/cli/awaiting-ci-wiring.js.map +1 -0
  9. package/dist/cli/daemon.d.ts.map +1 -1
  10. package/dist/cli/daemon.js +3 -3
  11. package/dist/cli/daemon.js.map +1 -1
  12. package/dist/cli/detect-checks.d.ts +2 -0
  13. package/dist/cli/detect-checks.d.ts.map +1 -1
  14. package/dist/cli/detect-checks.js +13 -2
  15. package/dist/cli/detect-checks.js.map +1 -1
  16. package/dist/cli/doctor-verify.d.ts +3 -1
  17. package/dist/cli/doctor-verify.d.ts.map +1 -1
  18. package/dist/cli/doctor-verify.js +13 -8
  19. package/dist/cli/doctor-verify.js.map +1 -1
  20. package/dist/cli/errors.d.ts +6 -0
  21. package/dist/cli/errors.d.ts.map +1 -0
  22. package/dist/cli/errors.js +11 -0
  23. package/dist/cli/errors.js.map +1 -0
  24. package/dist/cli/host-claim-guards.d.ts +9 -0
  25. package/dist/cli/host-claim-guards.d.ts.map +1 -0
  26. package/dist/cli/host-claim-guards.js +11 -0
  27. package/dist/cli/host-claim-guards.js.map +1 -0
  28. package/dist/cli/host-slot.d.ts +15 -2
  29. package/dist/cli/host-slot.d.ts.map +1 -1
  30. package/dist/cli/host-slot.js +33 -3
  31. package/dist/cli/host-slot.js.map +1 -1
  32. package/dist/cli/index.d.ts +6 -16
  33. package/dist/cli/index.d.ts.map +1 -1
  34. package/dist/cli/index.js +52 -78
  35. package/dist/cli/index.js.map +1 -1
  36. package/dist/cli/json-contract.d.ts +7 -0
  37. package/dist/cli/json-contract.d.ts.map +1 -1
  38. package/dist/cli/json-contract.js +3 -0
  39. package/dist/cli/json-contract.js.map +1 -1
  40. package/dist/cli/land-behind.d.ts +8 -0
  41. package/dist/cli/land-behind.d.ts.map +1 -0
  42. package/dist/cli/land-behind.js +21 -0
  43. package/dist/cli/land-behind.js.map +1 -0
  44. package/dist/cli/land-pr.d.ts +24 -0
  45. package/dist/cli/land-pr.d.ts.map +1 -1
  46. package/dist/cli/land-pr.js +143 -51
  47. package/dist/cli/land-pr.js.map +1 -1
  48. package/dist/cli/land.d.ts +9 -0
  49. package/dist/cli/land.d.ts.map +1 -1
  50. package/dist/cli/land.js +23 -22
  51. package/dist/cli/land.js.map +1 -1
  52. package/dist/cli/lane-heartbeat.d.ts +31 -3
  53. package/dist/cli/lane-heartbeat.d.ts.map +1 -1
  54. package/dist/cli/lane-heartbeat.js +74 -6
  55. package/dist/cli/lane-heartbeat.js.map +1 -1
  56. package/dist/cli/lane-pause.d.ts +6 -1
  57. package/dist/cli/lane-pause.d.ts.map +1 -1
  58. package/dist/cli/lane-pause.js +30 -0
  59. package/dist/cli/lane-pause.js.map +1 -1
  60. package/dist/cli/model-override-messages.d.ts +5 -1
  61. package/dist/cli/model-override-messages.d.ts.map +1 -1
  62. package/dist/cli/model-override-messages.js +9 -1
  63. package/dist/cli/model-override-messages.js.map +1 -1
  64. package/dist/cli/notify.d.ts +12 -0
  65. package/dist/cli/notify.d.ts.map +1 -1
  66. package/dist/cli/notify.js +28 -0
  67. package/dist/cli/notify.js.map +1 -1
  68. package/dist/cli/queue-preflight.d.ts +4 -2
  69. package/dist/cli/queue-preflight.d.ts.map +1 -1
  70. package/dist/cli/queue-preflight.js +1 -1
  71. package/dist/cli/queue-preflight.js.map +1 -1
  72. package/dist/cli/queue-startup.d.ts +57 -0
  73. package/dist/cli/queue-startup.d.ts.map +1 -1
  74. package/dist/cli/queue-startup.js +64 -1
  75. package/dist/cli/queue-startup.js.map +1 -1
  76. package/dist/cli/repo-live-run-lock.d.ts +7 -0
  77. package/dist/cli/repo-live-run-lock.d.ts.map +1 -0
  78. package/dist/cli/repo-live-run-lock.js +14 -0
  79. package/dist/cli/repo-live-run-lock.js.map +1 -0
  80. package/dist/cli/repo-run-lock.d.ts +14 -0
  81. package/dist/cli/repo-run-lock.d.ts.map +1 -0
  82. package/dist/cli/repo-run-lock.js +27 -0
  83. package/dist/cli/repo-run-lock.js.map +1 -0
  84. package/dist/cli/reset.d.ts.map +1 -1
  85. package/dist/cli/reset.js +2 -2
  86. package/dist/cli/reset.js.map +1 -1
  87. package/dist/cli/run-lane-deps.d.ts +16 -1
  88. package/dist/cli/run-lane-deps.d.ts.map +1 -1
  89. package/dist/cli/run-lane-disk-hold.d.ts +14 -0
  90. package/dist/cli/run-lane-disk-hold.d.ts.map +1 -0
  91. package/dist/cli/run-lane-disk-hold.js +25 -0
  92. package/dist/cli/run-lane-disk-hold.js.map +1 -0
  93. package/dist/cli/run-lane-load-hold.d.ts +14 -0
  94. package/dist/cli/run-lane-load-hold.d.ts.map +1 -0
  95. package/dist/cli/run-lane-load-hold.js +22 -0
  96. package/dist/cli/run-lane-load-hold.js.map +1 -0
  97. package/dist/cli/run-lane-restack.d.ts +13 -0
  98. package/dist/cli/run-lane-restack.d.ts.map +1 -0
  99. package/dist/cli/run-lane-restack.js +21 -0
  100. package/dist/cli/run-lane-restack.js.map +1 -0
  101. package/dist/cli/run-lane.d.ts.map +1 -1
  102. package/dist/cli/run-lane.js +73 -58
  103. package/dist/cli/run-lane.js.map +1 -1
  104. package/dist/cli/run.d.ts +1 -0
  105. package/dist/cli/run.d.ts.map +1 -1
  106. package/dist/cli/run.js +16 -12
  107. package/dist/cli/run.js.map +1 -1
  108. package/dist/cli/self-update-apply.d.ts +1 -1
  109. package/dist/cli/self-update-apply.d.ts.map +1 -1
  110. package/dist/cli/self-update-apply.js +4 -5
  111. package/dist/cli/self-update-apply.js.map +1 -1
  112. package/dist/cli/ship-run-state.d.ts +5 -0
  113. package/dist/cli/ship-run-state.d.ts.map +1 -1
  114. package/dist/cli/ship-run-state.js +18 -1
  115. package/dist/cli/ship-run-state.js.map +1 -1
  116. package/dist/cli/ship-steps.d.ts +4 -2
  117. package/dist/cli/ship-steps.d.ts.map +1 -1
  118. package/dist/cli/ship-steps.js +3 -1
  119. package/dist/cli/ship-steps.js.map +1 -1
  120. package/dist/cli/ship.d.ts +4 -2
  121. package/dist/cli/ship.d.ts.map +1 -1
  122. package/dist/cli/ship.js +11 -17
  123. package/dist/cli/ship.js.map +1 -1
  124. package/dist/cli/status-json.d.ts +1 -0
  125. package/dist/cli/status-json.d.ts.map +1 -1
  126. package/dist/cli/status-json.js +1 -0
  127. package/dist/cli/status-json.js.map +1 -1
  128. package/dist/cli/status.d.ts.map +1 -1
  129. package/dist/cli/status.js +16 -1
  130. package/dist/cli/status.js.map +1 -1
  131. package/dist/cli/steer.js +3 -3
  132. package/dist/cli/steer.js.map +1 -1
  133. package/package.json +4 -4
  134. package/schemas/logs-line.schema.json +10 -0
  135. package/schemas/status.schema.json +24 -0
@@ -1 +1 @@
1
- {"version":3,"file":"land.d.ts","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"land.d.ts","sourceRoot":"","sources":["../../src/cli/land.ts"],"names":[],"mappings":"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"}
package/dist/cli/land.js CHANGED
@@ -1,11 +1,12 @@
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, phaseSnapshotFile, resolveMergePolicy, resolveSandboxPolicy, touchRunActivity, workKeyFromIssue, } from '@on-par/factory-core';
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 { AwaitingReviewError, CiFailedError, LandConflictError, LandFailureError, MergeGatedError, 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;
@@ -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 () => {
@@ -163,7 +165,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
163
165
  });
164
166
  }
165
167
  catch (err) {
166
- if (err instanceof AwaitingReviewError || err instanceof CiFailedError) {
168
+ if (isLandLeftOpen(err)) {
167
169
  await withLandLock(() => gitOps.cleanupWorktree(repoRoot, worktree, log, worktreeSandbox));
168
170
  }
169
171
  throw err;
@@ -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 || err instanceof AwaitingReviewError || err instanceof CiFailedError)
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);
@@ -183,7 +185,7 @@ export async function landIssue(issueNum, repoRoot, ghRepo, paths, octokit, skip
183
185
  export function prLookupFailure(issueNum, branch, err) {
184
186
  return new LandFailureError(`PR lookup failed for issue #${issueNum} (${branch}): ${landRuntime().errorDetail(err)}`, 5);
185
187
  }
186
- export async function isPrMerged(octokit, owner, repoName, branch) {
188
+ export async function latestPrForBranch(octokit, owner, repoName, branch) {
187
189
  const { data: prs } = await octokit.rest.pulls.list({
188
190
  owner,
189
191
  repo: repoName,
@@ -191,18 +193,14 @@ export async function isPrMerged(octokit, owner, repoName, branch) {
191
193
  head: `${owner}:${branch}`,
192
194
  });
193
195
  if (prs.length === 0)
194
- return false;
195
- // Ship-it branch names get reused across separate runs for the same issue
196
- // (e.g. a "verify-and-close" pass recreates the exact branch name an
197
- // earlier, already-merged PR used) — GitHub PR numbers only increase, so
198
- // the highest-numbered PR under this head is always the current one.
199
- // Checking "was ANY PR ever merged under this branch name" (the old
200
- // `state: 'closed'` + `.some()` behavior) matched the stale prior PR and
201
- // falsely reported a brand-new, still-open PR under the same name as
202
- // merged — waitForMerge then logged "landed" and skipped calling land(),
203
- // leaving the real PR open forever while the lane believed it was done.
196
+ return null;
197
+ // Branch names get reused across runs; PR numbers only increase, so the highest-numbered PR is the current one
198
+ // (a stale merged PR under the same name must not make a new open PR look merged).
204
199
  const latest = prs.reduce((newest, pr) => (pr.number > newest.number ? pr : newest));
205
- return Boolean(latest.merged_at);
200
+ return { number: latest.number, merged: Boolean(latest.merged_at) };
201
+ }
202
+ export async function isPrMerged(octokit, owner, repoName, branch) {
203
+ return (await latestPrForBranch(octokit, owner, repoName, branch))?.merged ?? false;
206
204
  }
207
205
  /** queue-preflight only (it must see fork PRs to park them); land uses the core lookup (#3439). */
208
206
  export async function findOpenPRForIssue(octokit, owner, repoName, issueNum) {
@@ -258,12 +256,8 @@ export function isPermanentMergeCheckError(err) {
258
256
  return false;
259
257
  return !looksRateLimited(err);
260
258
  }
261
- async function defaultListIssueLabels(octokit, owner, repo, issue) {
262
- const { data } = await octokit.rest.issues.listLabelsOnIssue({ owner, repo, issue_number: issue });
263
- return data.map((label) => label.name);
264
- }
265
259
  export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps = {}) {
266
- const { createOctokit = landRuntime().getOctokit, pathExists = existsSync, checkMerged = isPrMerged, 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;
267
261
  const { configLoaders, errorDetail, LaneParkError } = landRuntime();
268
262
  const factoryConfig = loadConfig(paths.config);
269
263
  const isMergeEnabled = mergeEnabled ?? (() => resolveMergePolicy(factoryConfig, process.env, mergeOverrides).auto);
@@ -275,10 +269,11 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
275
269
  let consecutiveFailures = 0;
276
270
  let firstFailureAt = null;
277
271
  while (!pathExists(paths.stop)) {
272
+ signal?.throwIfAborted();
278
273
  // The merge wait logs nothing on its happy path, so each poll bumps the per-issue heartbeat:
279
274
  // status/TUI staleness rules (ADR-0086, ADR-0093) otherwise read a live wait as a dead run.
280
275
  if (paths.runs)
281
- touchRunActivity(phaseSnapshotFile(paths.runs, issue), new Date().toISOString()).catch(() => { });
276
+ touchIssueActivity(paths.runs, issue).catch(() => { });
282
277
  let merged = false;
283
278
  try {
284
279
  merged = await checkMerged(octokit, owner, repoName, branch);
@@ -326,6 +321,7 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
326
321
  ...(landBranch ? { branch: landBranch } : {}),
327
322
  enforceRisk: true,
328
323
  ...(syncMain ? { syncMain } : {}),
324
+ ...(signal ? { signal } : {}),
329
325
  });
330
326
  await releaseLandedClaim(paths, ghRepo, issue, (type, msg) => emitEvent(paths.events, type, issue, msg));
331
327
  return;
@@ -333,5 +329,10 @@ export async function waitForMerge(issue, branch, repoRoot, ghRepo, paths, deps
333
329
  writeLine(`[factory] #${issue} awaiting human merge (poll 120s)`);
334
330
  await sleep(120_000);
335
331
  }
332
+ // STOP ended the wait (#3291): a merged PR still lands; an open one goes back to the queue, never released as done.
333
+ const pr = await lookupPr(octokit, owner, repoName, branch).catch(() => null);
334
+ if (!pr?.merged)
335
+ throw new AwaitMergeStoppedError(`STOP during await-merge: PR on ${branch} left open`, branch, pr?.number ?? null);
336
+ emitEvent(paths.events, 'landed', issue, 'PR merged');
336
337
  }
337
338
  //# sourceMappingURL=land.js.map
@@ -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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"}
@@ -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. A heartbeat failure is swallowed — losing
3
- * one refresh must never abort the work it is protecting. Before returning or rethrowing, the
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>): 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":"AAOA;;;;6CAI6C;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,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
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. A heartbeat failure is swallowed — losing
8
- * one refresh must never abort the work it is protecting. Before returning or rethrowing, the
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;AAEtG;;mDAEmD;AACnD,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5C;;;;6CAI6C;AAC7C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAa,EACb,SAA4D,EAC5D,IAAsB;IAEtB,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,EAAE,CAAC;IAC9B,IAAI,QAAmC,CAAC;IACxC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,IAAI,QAAQ;YAAE,OAAO;QACrB,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE;aACzB,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;aAC5B,IAAI,CACH,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACT;aACA,OAAO,CAAC,GAAG,EAAE;YACZ,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,QAAQ,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"lane-heartbeat.js","sourceRoot":"","sources":["../../src/cli/lane-heartbeat.ts"],"names":[],"mappings":"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"}
@@ -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":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC1C,SAAS,EAAE,OAAO,QAAQ,CAAC;CAC5B,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAU1E;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,IAAI,GACd,IAAI,CA8BN;AAED,yHAAyH;AACzH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C,IAAI,CAmBN;AAED,4GAA4G;AAC5G,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,GAAG,EAAE,MAAM,IAAI,EACf,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,EACpC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACpC,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,gGAAgG;AAChG,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,wIAAwI;AACxI,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D,IAAI,CAkBN;AAED;2FAC2F;AAC3F,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACnD,IAAI,EAAE;IACJ,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;IACzC,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC,GACA,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED,iGAAiG;AACjG,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,EAC1E,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAmBf"}
1
+ {"version":3,"file":"lane-pause.d.ts","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"lane-pause.js","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
- import type { EffectiveModelPins, ModelRouter, RepoFactoryConfig } from '@on-par/factory-core';
1
+ import type { EffectiveModelPins, ModelRouter, ModelsConfig, RepoFactoryConfig } from '@on-par/factory-core';
2
+ import { type ProviderOrder, type SubscriptionLoginDeps } from '@on-par/factory-core/internal';
2
3
  /** One `model-override` message per pinned phase, naming the file or env var it came from (#2497). */
3
4
  export declare function modelOverrideMessages(pins: EffectiveModelPins, repo: RepoFactoryConfig | null, repoConfigLabel: string): string[];
4
5
  /** Turn on the metered failover guard and log one `metered_primary_route` warning per metered plan/build pin (#3234). */
5
6
  export declare function applyMeteredGuard(router: ModelRouter, pins: EffectiveModelPins, log: (type: 'warn', msg: string) => void): void;
7
+ /** The run's provider order (#3338): only when the repo file sets `models.providerOrder`, with refused providers
8
+ * filtered out (#3335); undefined leaves every phase on today's routing. */
9
+ export declare function resolveProviderOrder(repo: RepoFactoryConfig | null, models: ModelsConfig, log: SubscriptionLoginDeps['log']): ProviderOrder | undefined;
6
10
  //# sourceMappingURL=model-override-messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-override-messages.d.ts","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG/F,sGAAsG;AACtG,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAWV;AAED,yHAAyH;AACzH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GACvC,IAAI,CAQN"}
1
+ {"version":3,"file":"model-override-messages.d.ts","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC7G,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,sGAAsG;AACtG,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,eAAe,EAAE,MAAM,GACtB,MAAM,EAAE,CAWV;AAED,yHAAyH;AACzH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GACvC,IAAI,CAQN;AAED;6EAC6E;AAC7E,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAC9B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAChC,aAAa,GAAG,SAAS,CAI3B"}
@@ -1,5 +1,5 @@
1
1
  // packages/cli/src/cli/model-override-messages.ts — the `model-override` lines shipIssue logs, split from ship.ts
2
- import { meteredPrimaryRouteWarnings } from '@on-par/factory-core/internal';
2
+ import { filterRefusedProviders, meteredPrimaryRouteWarnings, } from '@on-par/factory-core/internal';
3
3
  /** One `model-override` message per pinned phase, naming the file or env var it came from (#2497). */
4
4
  export function modelOverrideMessages(pins, repo, repoConfigLabel) {
5
5
  const label = (source, envVar) => (source === 'repo' ? repoConfigLabel : envVar);
@@ -24,4 +24,12 @@ export function applyMeteredGuard(router, pins, log) {
24
24
  for (const msg of meteredPrimaryRouteWarnings(pins, lookup))
25
25
  log('warn', msg);
26
26
  }
27
+ /** The run's provider order (#3338): only when the repo file sets `models.providerOrder`, with refused providers
28
+ * filtered out (#3335); undefined leaves every phase on today's routing. */
29
+ export function resolveProviderOrder(repo, models, log) {
30
+ // applyRepoConfig merges the repo's override over the derived order, so it is set whenever the repo file sets the key.
31
+ if (!repo?.models?.providerOrder || !models.providerOrder)
32
+ return undefined;
33
+ return filterRefusedProviders(models.providerOrder, models.models, { log }).order;
34
+ }
27
35
  //# sourceMappingURL=model-override-messages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-override-messages.js","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAGlH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CACnC,IAAwB,EACxB,IAA8B,EAC9B,eAAuB;IAEvB,MAAM,KAAK,GAAG,CAAC,MAAkC,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrH,MAAM,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;IACpC,OAAO;QACL,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,0BAA0B,QAAQ,CAAC,MAAM,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,GAAG,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC;YAC/F,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,QAAQ,CAAC,OAAO,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,IAAwB,EACxB,GAAwC;IAExC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"model-override-messages.js","sourceRoot":"","sources":["../../src/cli/model-override-messages.ts"],"names":[],"mappings":"AAAA,kHAAkH;AAGlH,OAAO,EACL,sBAAsB,EACtB,2BAA2B,GAG5B,MAAM,+BAA+B,CAAC;AAEvC,sGAAsG;AACtG,MAAM,UAAU,qBAAqB,CACnC,IAAwB,EACxB,IAA8B,EAC9B,eAAuB;IAEvB,MAAM,KAAK,GAAG,CAAC,MAAkC,EAAE,MAAc,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACrH,MAAM,QAAQ,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;IACpC,OAAO;QACL,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,0BAA0B,QAAQ,CAAC,MAAM,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/F,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/G,GAAG,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,CAAC,yBAAyB,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC;YAC/F,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,QAAQ,CAAC,OAAO,KAAK,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,IAAwB,EACxB,GAAwC;IAExC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,CAAC,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,2BAA2B,CAAC,IAAI,EAAE,MAAM,CAAC;QAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC;AAED;6EAC6E;AAC7E,MAAM,UAAU,oBAAoB,CAClC,IAA8B,EAC9B,MAAoB,EACpB,GAAiC;IAEjC,uHAAuH;IACvH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IAC5E,OAAO,sBAAsB,CAAC,MAAM,CAAC,aAA8B,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC;AACrG,CAAC"}
@@ -10,6 +10,12 @@ export type NotifySummary = {
10
10
  lane: string;
11
11
  message: string;
12
12
  park: ParkPayload;
13
+ } | {
14
+ kind: 'disk_low';
15
+ ts: string;
16
+ host: string;
17
+ lane: string;
18
+ message: string;
13
19
  } | {
14
20
  kind: 'drain';
15
21
  ts: string;
@@ -34,4 +40,10 @@ export declare function resolveNotifyCommand(flag: string | undefined, env: Node
34
40
  export declare function createNotifier(cmd: string | undefined, deps?: NotifierDeps): Notifier | undefined;
35
41
  /** Wraps an event emitter so each lane `parked` event with a park payload also fires a park summary. */
36
42
  export declare function withParkNotify(emit: typeof logEvent, notifier: Notifier): typeof logEvent;
43
+ /** Wraps an event emitter so a `disk_low` event also fires one alert per host per hour (#2284). */
44
+ export declare function withDiskLowNotify(emit: typeof logEvent, notifier: Notifier, opts?: {
45
+ alertFile?: string;
46
+ now?: () => Date;
47
+ host?: string;
48
+ }): typeof logEvent;
37
49
  //# sourceMappingURL=notify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/cli/notify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,eAAO,MAAM,UAAU,uBAAuB,CAAC;AAC/C,eAAO,MAAM,aAAa,oDAAoD,CAAC;AAG/E,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACtG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,iFAAiF;IACjF,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,2FAA2F;IAC3F,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAKzG;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,QAAQ,GAAG,SAAS,CAuDrG;AAED,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,QAAQ,CAoBzF"}
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/cli/notify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,eAAO,MAAM,UAAU,uBAAuB,CAAC;AAC/C,eAAO,MAAM,aAAa,oDAAoD,CAAC;AAG/E,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACtG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,iFAAiF;IACjF,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,2FAA2F;IAC3F,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAKzG;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,QAAQ,GAAG,SAAS,CAuDrG;AAED,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,QAAQ,CAoBzF;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,QAAQ,EACrB,QAAQ,EAAE,QAAQ,EAClB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,OAAO,QAAQ,CAuBjB"}
@@ -1,5 +1,7 @@
1
1
  // packages/cli/src/cli/notify.ts — opt-in --notify command fired on park and drain (#3512)
2
2
  import { spawn } from 'node:child_process';
3
+ import { hostname } from 'node:os';
4
+ import { claimDiskAlert, hostDiskAlertFile } from '@on-par/factory-core/internal';
3
5
  export const NOTIFY_ENV = 'FACTORY_NOTIFY_CMD';
4
6
  export const DRAIN_MESSAGE = 'queue drained: all lanes finished, nothing left';
5
7
  const DEFAULT_TIMEOUT_MS = 30_000;
@@ -92,4 +94,30 @@ export function withParkNotify(emit, notifier) {
92
94
  return result;
93
95
  };
94
96
  }
97
+ /** Wraps an event emitter so a `disk_low` event also fires one alert per host per hour (#2284). */
98
+ export function withDiskLowNotify(emit, notifier, opts = {}) {
99
+ const { alertFile = hostDiskAlertFile(), now = () => new Date(), host = hostname() } = opts;
100
+ return (...args) => {
101
+ const result = emit(...args);
102
+ const [, type, issue, msg, extra] = args;
103
+ if (type === 'disk_low') {
104
+ try {
105
+ const at = now();
106
+ if (claimDiskAlert(alertFile, at)) {
107
+ notifier.notify({
108
+ kind: 'disk_low',
109
+ ts: at.toISOString(),
110
+ host,
111
+ lane: extra?.lane ?? String(issue),
112
+ message: msg,
113
+ });
114
+ }
115
+ }
116
+ catch {
117
+ // notify must never break the event log
118
+ }
119
+ }
120
+ return result;
121
+ };
122
+ }
95
123
  //# sourceMappingURL=notify.js.map