@reneturcios/greenlight 0.8.2 → 0.9.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 +49 -3
- package/dist/automate.js +13 -0
- package/dist/automate.js.map +1 -1
- package/dist/babysit.d.ts +73 -1
- package/dist/babysit.js +261 -71
- package/dist/babysit.js.map +1 -1
- package/dist/claim-health.d.ts +44 -0
- package/dist/claim-health.js +88 -0
- package/dist/claim-health.js.map +1 -0
- package/dist/claim-import.d.ts +59 -0
- package/dist/claim-import.js +164 -0
- package/dist/claim-import.js.map +1 -0
- package/dist/claims-registry.d.ts +35 -0
- package/dist/claims-registry.js +71 -0
- package/dist/claims-registry.js.map +1 -0
- package/dist/cli.js +187 -14
- package/dist/cli.js.map +1 -1
- package/dist/digest.d.ts +32 -1
- package/dist/digest.js +46 -4
- package/dist/digest.js.map +1 -1
- package/dist/doctor.js +14 -6
- package/dist/doctor.js.map +1 -1
- package/dist/gates.d.ts +1 -1
- package/dist/gates.js +39 -2
- package/dist/gates.js.map +1 -1
- package/dist/github.d.ts +4 -0
- package/dist/github.js +11 -0
- package/dist/github.js.map +1 -1
- package/dist/guard.d.ts +13 -1
- package/dist/guard.js +15 -1
- package/dist/guard.js.map +1 -1
- package/dist/help.js +51 -7
- package/dist/help.js.map +1 -1
- package/dist/index.js +39 -1
- package/dist/index.js.map +1 -1
- package/dist/init.js +1 -1
- package/dist/proxy.d.ts +50 -0
- package/dist/proxy.js +111 -0
- package/dist/proxy.js.map +1 -0
- package/dist/scout.d.ts +114 -0
- package/dist/scout.js +266 -0
- package/dist/scout.js.map +1 -0
- package/dist/triage.d.ts +23 -0
- package/dist/triage.js +83 -0
- package/dist/triage.js.map +1 -0
- package/dist/types.d.ts +17 -1
- package/dist/verdict.d.ts +15 -6
- package/dist/verdict.js +14 -0
- package/dist/verdict.js.map +1 -1
- package/integrations/README.md +3 -1
- package/integrations/claude-code/CLAUDE.snippet.md +3 -2
- package/integrations/cline/README.md +1 -1
- package/integrations/windsurf/README.md +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
package/dist/babysit.js
CHANGED
|
@@ -19,12 +19,25 @@ import { apiGet, parsePullUrl } from "./github.js";
|
|
|
19
19
|
import { triagePr } from "./ci-triage.js";
|
|
20
20
|
import { triageReview as defaultTriageReview } from "./review-triage.js";
|
|
21
21
|
import { guardPr } from "./guard.js";
|
|
22
|
+
import { computeIssueStatus } from "./protocol-fetch.js";
|
|
23
|
+
import { defaultRegistryPath, loadRegistry, removeClaim, registryExists, } from "./claims-registry.js";
|
|
24
|
+
import { bucketClaim } from "./claim-health.js";
|
|
22
25
|
import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
23
26
|
import { homedir } from "node:os";
|
|
24
27
|
import { dirname, join } from "node:path";
|
|
25
|
-
export const BABYSIT_VERSION = "0.
|
|
28
|
+
export const BABYSIT_VERSION = "0.9.1";
|
|
26
29
|
/** Checks pending longer than this are reported as stuck, not just running. */
|
|
27
30
|
export const STUCK_CHECK_MINUTES = 120;
|
|
31
|
+
/**
|
|
32
|
+
* Default bound on concurrent per-PR fetches (v0.9.1): a 15-PR sweep was
|
|
33
|
+
* ~9 minutes serial. Override per run with BabysitRunOptions.concurrency
|
|
34
|
+
* or the CLI --concurrency flag.
|
|
35
|
+
*/
|
|
36
|
+
export const BABYSIT_CONCURRENCY = 5;
|
|
37
|
+
/** How many times to attempt one PR's network reads before calling it a transient failure. */
|
|
38
|
+
export const BABYSIT_RETRIES = 2;
|
|
39
|
+
/** Base backoff between retries, scaled by attempt number (attempt * base). */
|
|
40
|
+
export const BABYSIT_RETRY_BACKOFF_MS = 250;
|
|
28
41
|
/** Cap on discovered PRs per --mine run; the summary always states the cap. */
|
|
29
42
|
export const MINE_DISCOVERY_CAP = 100;
|
|
30
43
|
async function defaultFetchPr(owner, repo, number) {
|
|
@@ -143,6 +156,68 @@ export function reviewFindingId(f) {
|
|
|
143
156
|
export function guardFlagId(check, title) {
|
|
144
157
|
return `${check}|${title}`;
|
|
145
158
|
}
|
|
159
|
+
/** Parse a linked-issue URL into the canonical "owner/repo#N" ref; null when unparseable. */
|
|
160
|
+
export function linkedIssueRef(url) {
|
|
161
|
+
const m = /github\.com\/([^/]+)\/([^/]+)\/(?:issues|pull)\/(\d+)/.exec(url);
|
|
162
|
+
return m ? `${m[1]}/${m[2]}#${m[3]}` : null;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Retry a network-shaped function. Intentionally small: babysit runs one
|
|
166
|
+
* logical operation per PR, and a single flaky call should not poison the
|
|
167
|
+
* whole sweep. Re-throws the last error after the attempts run out.
|
|
168
|
+
*/
|
|
169
|
+
export async function withRetry(fn, attempts = BABYSIT_RETRIES, backoffMs = BABYSIT_RETRY_BACKOFF_MS) {
|
|
170
|
+
let last;
|
|
171
|
+
for (let i = 0; i < attempts; i++) {
|
|
172
|
+
try {
|
|
173
|
+
return await fn();
|
|
174
|
+
}
|
|
175
|
+
catch (err) {
|
|
176
|
+
last = err;
|
|
177
|
+
if (i < attempts - 1)
|
|
178
|
+
await new Promise((r) => setTimeout(r, backoffMs * (i + 1)));
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
throw last;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Bounded-concurrency map: runs fn over items with at most `limit` in
|
|
185
|
+
* flight. Order of results matches order of items.
|
|
186
|
+
*/
|
|
187
|
+
export async function mapBounded(items, limit, fn) {
|
|
188
|
+
const out = new Array(items.length);
|
|
189
|
+
let next = 0;
|
|
190
|
+
const worker = async () => {
|
|
191
|
+
while (next < items.length) {
|
|
192
|
+
const i = next++;
|
|
193
|
+
out[i] = await fn(items[i]);
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const workers = Array.from({ length: Math.max(1, limit) }, () => worker());
|
|
197
|
+
await Promise.all(workers);
|
|
198
|
+
return out;
|
|
199
|
+
}
|
|
200
|
+
export function classifyBabysitError(err) {
|
|
201
|
+
const msg = (err instanceof Error ? err.message : String(err)).toLowerCase();
|
|
202
|
+
// parsePullUrl throws messages like "not a GitHub pull request URL" —
|
|
203
|
+
// those are the caller's fault, never the network's.
|
|
204
|
+
if (/not a github (pull request|issue) url|could not parse|invalid url/.test(msg))
|
|
205
|
+
return "usage";
|
|
206
|
+
// A 404 on the PR itself means the PR is not there (wrong number,
|
|
207
|
+
// deleted); a 401 means the token is bad. Retrying either is pointless,
|
|
208
|
+
// and the brief scopes retries to network/5xx failures.
|
|
209
|
+
// The codebase's transport errors read "GitHub API {status} for {path}"
|
|
210
|
+
// or "HTTP {status}". A 404/401 there is permanent: wrong PR number or
|
|
211
|
+
// a bad token. Everything else is the network or GitHub flaking.
|
|
212
|
+
if (/(api|http) 404\b/.test(msg))
|
|
213
|
+
return "usage";
|
|
214
|
+
if (/(api|http) 401\b/.test(msg))
|
|
215
|
+
return "usage";
|
|
216
|
+
// Everything else is the network or GitHub flaking: retryable. 403 stays
|
|
217
|
+
// transient (rate limits and abuse blocks can lift; reads are unaffected
|
|
218
|
+
// by comment blocks), 429 and 5xx likewise.
|
|
219
|
+
return "transient";
|
|
220
|
+
}
|
|
146
221
|
function minutesPending(run, now) {
|
|
147
222
|
if (!run.startedAt)
|
|
148
223
|
return null;
|
|
@@ -188,11 +263,30 @@ export function buildPrReport(input) {
|
|
|
188
263
|
const newFindings = actionable.filter((f) => !seenReviews.has(reviewFindingId(f)));
|
|
189
264
|
const newLikelyReal = newFindings.filter((f) => f.class === "likely-real");
|
|
190
265
|
const newNeedsDecision = newFindings.filter((f) => f.class === "needs-decision");
|
|
191
|
-
// New guard flags since the watermark.
|
|
266
|
+
// New guard flags since the watermark (v0.9.1 subject routing).
|
|
267
|
+
// A flag raises needs-you only when it is about THIS PR (subject "pr"),
|
|
268
|
+
// or about one of the PR's own linked issues (subject "issue" with a
|
|
269
|
+
// matching issueRef). Flags about other issues or repo-wide signals go
|
|
270
|
+
// to repoNotes, informational only. Field case: actual #9250's repo had
|
|
271
|
+
// "Competing fix for #123" flags pinned on the wrong PR.
|
|
192
272
|
const seenFlags = new Set(watermark?.seenGuardFlags ?? []);
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
273
|
+
const ownIssues = new Set(guard.linkedIssues.map((i) => linkedIssueRef(i.url)).filter((s) => s !== null));
|
|
274
|
+
const newGuardFlags = [];
|
|
275
|
+
const repoNotes = [];
|
|
276
|
+
for (const f of guard.findings) {
|
|
277
|
+
if (f.severity !== "flag")
|
|
278
|
+
continue;
|
|
279
|
+
const id = guardFlagId(f.check, f.title);
|
|
280
|
+
if (seenFlags.has(id))
|
|
281
|
+
continue;
|
|
282
|
+
const subject = f.subject ?? "pr"; // pre-v0.9.1 fixtures had no subject: old behavior
|
|
283
|
+
if (subject === "pr" || (subject === "issue" && f.issueRef !== undefined && ownIssues.has(f.issueRef))) {
|
|
284
|
+
newGuardFlags.push(f.title);
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
repoNotes.push(`${f.title} (about ${f.issueRef ?? "the repo"}, not this PR)`);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
196
290
|
const conflicts = pr.mergeable === false || pr.mergeableState === "dirty";
|
|
197
291
|
const tag = `${pr.owner}/${pr.repo}#${pr.number}`;
|
|
198
292
|
const add = (urgency, text, next) => {
|
|
@@ -267,6 +361,7 @@ export function buildPrReport(input) {
|
|
|
267
361
|
newLikelyReal,
|
|
268
362
|
newNeedsDecision,
|
|
269
363
|
newGuardFlags,
|
|
364
|
+
repoNotes,
|
|
270
365
|
guardSummary: guard.summary,
|
|
271
366
|
actions,
|
|
272
367
|
};
|
|
@@ -282,9 +377,19 @@ export function watermarkFromReport(report, review, guard, now) {
|
|
|
282
377
|
checkedAt: now.toISOString(),
|
|
283
378
|
};
|
|
284
379
|
}
|
|
380
|
+
async function defaultComputeStatus(owner, repo, number) {
|
|
381
|
+
const { status, snapshot } = await computeIssueStatus(owner, repo, number);
|
|
382
|
+
return { status, issueUpdatedAt: snapshot.updatedAt ?? null };
|
|
383
|
+
}
|
|
285
384
|
function renderMarkdown(reports, run) {
|
|
286
385
|
const lines = [];
|
|
287
|
-
|
|
386
|
+
if (run.claimsOnly) {
|
|
387
|
+
lines.push(`**Claims babysitter: ${run.claims.length} active claims** (${run.retiredClaims.length} retired this run)`);
|
|
388
|
+
}
|
|
389
|
+
else {
|
|
390
|
+
const unchecked = run.transientFailures.length > 0 ? `, ${run.transientFailures.length} could not check` : "";
|
|
391
|
+
lines.push(`**PR babysitter: ${run.needsYouNow.length} need you now, ${run.waitingOnThem.length} waiting, ${run.quiet.length} quiet${unchecked}** (${run.prsChecked} PRs checked)`);
|
|
392
|
+
}
|
|
288
393
|
if (run.firstRun)
|
|
289
394
|
lines.push("_First run: no watermarks yet, so this is the full picture. Reruns report what changed since the last check._");
|
|
290
395
|
lines.push("");
|
|
@@ -310,6 +415,53 @@ function renderMarkdown(reports, run) {
|
|
|
310
415
|
for (const q of run.quiet)
|
|
311
416
|
lines.push(`- ${q}`);
|
|
312
417
|
lines.push("");
|
|
418
|
+
// v0.9.1: transient failures are their own section, never mixed into
|
|
419
|
+
// needs-you or waiting. A PR here was not observed: its watermark is
|
|
420
|
+
// unchanged, so the next run reports it as if this run never happened.
|
|
421
|
+
if (run.transientFailures.length > 0) {
|
|
422
|
+
lines.push(`## Could not check (transient)`);
|
|
423
|
+
for (const f of run.transientFailures) {
|
|
424
|
+
const next = f.errorKind === "usage" ? "Check the URL and rerun." : "Rerun; transient failures never update watermarks and never appear as findings.";
|
|
425
|
+
lines.push(`- **${f.pr}** — ${f.detail}`);
|
|
426
|
+
lines.push(` Next: ${next}`);
|
|
427
|
+
}
|
|
428
|
+
lines.push("");
|
|
429
|
+
}
|
|
430
|
+
// v0.9.1: guard flags about other issues or the repo at large, filed
|
|
431
|
+
// here informational only. They never raise needs-you.
|
|
432
|
+
if (run.repoNotes.length > 0) {
|
|
433
|
+
lines.push(`## Repo notes (informational)`);
|
|
434
|
+
for (const n of run.repoNotes)
|
|
435
|
+
lines.push(`- ${n}`);
|
|
436
|
+
lines.push("");
|
|
437
|
+
}
|
|
438
|
+
// Claims section (v0.9.0): the operator's registered claims, bucketed.
|
|
439
|
+
if (run.claimsRegistryMissing) {
|
|
440
|
+
lines.push("## My claims");
|
|
441
|
+
lines.push("_No claims registry yet: `greenlight claim --register <issue-url>` records one._");
|
|
442
|
+
lines.push("");
|
|
443
|
+
}
|
|
444
|
+
else if (run.claims.length > 0 || run.retiredClaims.length > 0) {
|
|
445
|
+
lines.push(`## My claims (${run.claims.length} active)`);
|
|
446
|
+
const order = ["linked", "queue-lost", "expiring", "heartbeat-due", "unlinked-stale", "healthy-active"];
|
|
447
|
+
for (const bucket of order) {
|
|
448
|
+
const group = run.claims.filter((c) => c.bucket === bucket);
|
|
449
|
+
if (group.length === 0)
|
|
450
|
+
continue;
|
|
451
|
+
lines.push(`### ${bucket}`);
|
|
452
|
+
for (const c of group) {
|
|
453
|
+
if (c.error)
|
|
454
|
+
lines.push(`- ${c.claim.issueUrl} — could not read status: ${c.error}`);
|
|
455
|
+
else
|
|
456
|
+
lines.push(`- ${c.detail}${c.prUrl ? ` (${c.prUrl})` : ""}`);
|
|
457
|
+
}
|
|
458
|
+
lines.push("");
|
|
459
|
+
}
|
|
460
|
+
for (const r of run.retiredClaims)
|
|
461
|
+
lines.push(`_${r}_`);
|
|
462
|
+
if (run.retiredClaims.length > 0)
|
|
463
|
+
lines.push("");
|
|
464
|
+
}
|
|
313
465
|
for (const r of reports) {
|
|
314
466
|
if (r.headChanged)
|
|
315
467
|
lines.push(`_${r.pr}: new head ${r.headSha.slice(0, 7)} since the last check._`);
|
|
@@ -346,8 +498,14 @@ export async function babysit(opts) {
|
|
|
346
498
|
needsYouNow: [],
|
|
347
499
|
waitingOnThem: [],
|
|
348
500
|
quiet: [],
|
|
501
|
+
transientFailures: [],
|
|
502
|
+
repoNotes: [],
|
|
349
503
|
firstRun,
|
|
350
504
|
prsChecked: 0,
|
|
505
|
+
claims: [],
|
|
506
|
+
retiredClaims: [],
|
|
507
|
+
claimsRegistryMissing: true,
|
|
508
|
+
claimsOnly: false,
|
|
351
509
|
markdown: `**PR babysitter: could not discover PRs** — ${err instanceof Error ? err.message : String(err)}`,
|
|
352
510
|
json: { error: err instanceof Error ? err.message : String(err) },
|
|
353
511
|
};
|
|
@@ -355,63 +513,65 @@ export async function babysit(opts) {
|
|
|
355
513
|
}
|
|
356
514
|
}
|
|
357
515
|
const reports = [];
|
|
516
|
+
const transientFailures = [];
|
|
358
517
|
const fetchPr = deps.fetchPr ?? defaultFetchPr;
|
|
359
518
|
const fetchCheckRuns = deps.fetchCheckRuns ?? defaultFetchCheckRuns;
|
|
360
519
|
const triageCi = deps.triageCi ?? triagePr;
|
|
361
520
|
const triageReview = deps.triageReview ?? defaultTriageReview;
|
|
362
521
|
const guard = deps.guard ?? guardPr;
|
|
363
|
-
|
|
522
|
+
const concurrency = opts.concurrency ?? BABYSIT_CONCURRENCY;
|
|
523
|
+
const emptyReport = (tag, owner, repo, number) => ({
|
|
524
|
+
pr: tag, owner, repo, number, title: "", author: "",
|
|
525
|
+
headSha: "", headChanged: false,
|
|
526
|
+
conflicts: false, mergeableState: null,
|
|
527
|
+
ciVerdict: "INDETERMINATE",
|
|
528
|
+
yoursFailing: [], pendingChecks: [], stuckChecks: [],
|
|
529
|
+
newLikelyReal: [], newNeedsDecision: [], newGuardFlags: [], repoNotes: [],
|
|
530
|
+
guardSummary: "",
|
|
531
|
+
actions: [],
|
|
532
|
+
});
|
|
533
|
+
/** One PR through the pipeline, retried on transient failures. Never throws. */
|
|
534
|
+
const checkOnePr = async (prUrl) => {
|
|
535
|
+
let owner = "";
|
|
536
|
+
let repo = "";
|
|
537
|
+
let number = 0;
|
|
538
|
+
try {
|
|
539
|
+
({ owner, repo, number } = parsePullUrl(prUrl));
|
|
540
|
+
}
|
|
541
|
+
catch (err) {
|
|
542
|
+
transientFailures.push({
|
|
543
|
+
pr: prUrl,
|
|
544
|
+
errorKind: classifyBabysitError(err),
|
|
545
|
+
detail: `Not a GitHub PR URL: ${err instanceof Error ? err.message : String(err)}`,
|
|
546
|
+
});
|
|
547
|
+
return;
|
|
548
|
+
}
|
|
549
|
+
const tag = watermarkKey(owner, repo, number);
|
|
364
550
|
try {
|
|
365
|
-
|
|
366
|
-
|
|
551
|
+
// Fetch the PR itself, retried: a flaky call should not poison the
|
|
552
|
+
// run, and an unobserved PR must never update its watermark.
|
|
553
|
+
const pr = await withRetry(() => fetchPr(owner, repo, number));
|
|
367
554
|
if (pr.state !== "open") {
|
|
368
555
|
// A closed or merged PR is done being babysat: it lands on the
|
|
369
556
|
// quiet list with its resolution, and its watermark is retired so a
|
|
370
557
|
// reopen shows up as a fresh full picture.
|
|
371
558
|
const resolution = pr.state === "merged" ? "merged" : "closed";
|
|
372
|
-
const
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
conflicts: false, mergeableState: null,
|
|
379
|
-
ciVerdict: "INDETERMINATE",
|
|
380
|
-
yoursFailing: [], pendingChecks: [], stuckChecks: [],
|
|
381
|
-
newLikelyReal: [], newNeedsDecision: [], newGuardFlags: [],
|
|
382
|
-
guardSummary: "",
|
|
383
|
-
actions: [],
|
|
384
|
-
});
|
|
559
|
+
const r = emptyReport(tag, owner, repo, number);
|
|
560
|
+
r.title = pr.title;
|
|
561
|
+
r.author = pr.author;
|
|
562
|
+
r.headSha = pr.headSha;
|
|
563
|
+
r.resolution = resolution;
|
|
564
|
+
reports.push(r);
|
|
385
565
|
delete state.watermarks[tag];
|
|
386
|
-
|
|
387
|
-
}
|
|
388
|
-
const [checkRuns, ci, review, guardResult] = await Promise.all([
|
|
389
|
-
fetchCheckRuns(owner, repo, pr.headSha).catch(() => []),
|
|
390
|
-
triageCi(prUrl).catch(() => null),
|
|
391
|
-
triageReview(prUrl).catch(() => null),
|
|
392
|
-
guard(prUrl).catch(() => null),
|
|
393
|
-
]);
|
|
394
|
-
if (!ci || !review || !guardResult) {
|
|
395
|
-
reports.push({
|
|
396
|
-
pr: watermarkKey(owner, repo, number),
|
|
397
|
-
owner, repo, number,
|
|
398
|
-
title: pr.title, author: pr.author,
|
|
399
|
-
headSha: pr.headSha, headChanged: false,
|
|
400
|
-
conflicts: false, mergeableState: pr.mergeableState,
|
|
401
|
-
ciVerdict: "INDETERMINATE",
|
|
402
|
-
yoursFailing: [], pendingChecks: [], stuckChecks: [],
|
|
403
|
-
newLikelyReal: [], newNeedsDecision: [], newGuardFlags: [],
|
|
404
|
-
guardSummary: "",
|
|
405
|
-
actions: [{
|
|
406
|
-
urgency: "waiting",
|
|
407
|
-
pr: watermarkKey(owner, repo, number),
|
|
408
|
-
text: "Could not read this PR's signals this run (API hiccup)",
|
|
409
|
-
next: "Rerun the babysitter; this is a transient gap, not a finding.",
|
|
410
|
-
}],
|
|
411
|
-
});
|
|
412
|
-
continue;
|
|
566
|
+
return;
|
|
413
567
|
}
|
|
414
|
-
const
|
|
568
|
+
const headSha = pr.headSha;
|
|
569
|
+
const [checkRuns, ci, review, guardResult] = await withRetry(() => Promise.all([
|
|
570
|
+
fetchCheckRuns(owner, repo, headSha),
|
|
571
|
+
triageCi(prUrl),
|
|
572
|
+
triageReview(prUrl),
|
|
573
|
+
guard(prUrl),
|
|
574
|
+
]));
|
|
415
575
|
const report = buildPrReport({
|
|
416
576
|
prUrl,
|
|
417
577
|
pr,
|
|
@@ -419,32 +579,26 @@ export async function babysit(opts) {
|
|
|
419
579
|
ci,
|
|
420
580
|
review,
|
|
421
581
|
guard: guardResult,
|
|
422
|
-
watermark: state.watermarks[
|
|
582
|
+
watermark: state.watermarks[tag] ?? null,
|
|
423
583
|
now,
|
|
424
584
|
});
|
|
425
585
|
reports.push(report);
|
|
426
|
-
state.watermarks[
|
|
586
|
+
state.watermarks[tag] = watermarkFromReport(report, review, guardResult, now);
|
|
427
587
|
}
|
|
428
588
|
catch (err) {
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
guardSummary: "",
|
|
439
|
-
actions: [{
|
|
440
|
-
urgency: "waiting",
|
|
441
|
-
pr: tag,
|
|
442
|
-
text: `Could not check this PR: ${err instanceof Error ? err.message : String(err)}`,
|
|
443
|
-
next: "Check the URL and rerun.",
|
|
444
|
-
}],
|
|
589
|
+
// After retries, the PR was not observed: no watermark change, no
|
|
590
|
+
// finding. It lands in the transient section with its error kind.
|
|
591
|
+
const kind = classifyBabysitError(err);
|
|
592
|
+
transientFailures.push({
|
|
593
|
+
pr: tag,
|
|
594
|
+
errorKind: kind,
|
|
595
|
+
detail: kind === "usage"
|
|
596
|
+
? `Not a GitHub PR URL: ${err instanceof Error ? err.message : String(err)}`
|
|
597
|
+
: `Could not read this PR's signals after ${BABYSIT_RETRIES} attempts: ${err instanceof Error ? err.message : String(err)}`,
|
|
445
598
|
});
|
|
446
599
|
}
|
|
447
|
-
}
|
|
600
|
+
};
|
|
601
|
+
await mapBounded(prUrls, concurrency, checkOnePr);
|
|
448
602
|
saveState(statePath, state);
|
|
449
603
|
const needsYouNow = reports.flatMap((r) => r.actions.filter((a) => a.urgency === "now"));
|
|
450
604
|
const waitingOnThem = reports.flatMap((r) => r.actions.filter((a) => a.urgency === "waiting"));
|
|
@@ -454,8 +608,40 @@ export async function babysit(opts) {
|
|
|
454
608
|
.map((r) => r.resolution
|
|
455
609
|
? `${r.pr} "${r.title}" — ${r.resolution} since the last check`
|
|
456
610
|
: `${r.pr} "${r.title}" — nothing needs you`);
|
|
611
|
+
const repoNotes = [...new Set(reports.flatMap((r) => r.repoNotes))];
|
|
612
|
+
// Claims section (v0.9.0): bucket every registered claim by its live
|
|
613
|
+
// protocol status. Claims whose issue resolved (merged/closed issue, a
|
|
614
|
+
// completed protocol claim, a released claim) retire from the registry.
|
|
615
|
+
const computeStatus = deps.computeStatus ?? defaultComputeStatus;
|
|
616
|
+
const registryPath = opts.claimsRegistryPath ?? defaultRegistryPath();
|
|
617
|
+
const claimsRegistryMissing = !registryExists(registryPath);
|
|
618
|
+
const claims = [];
|
|
619
|
+
const retiredClaims = [];
|
|
620
|
+
if (!claimsRegistryMissing) {
|
|
621
|
+
for (const claimEntry of loadRegistry(registryPath).claims) {
|
|
622
|
+
try {
|
|
623
|
+
const { status, issueUpdatedAt } = await computeStatus(claimEntry.owner, claimEntry.repo, claimEntry.number);
|
|
624
|
+
const claimState = status.claim?.state;
|
|
625
|
+
if (claimState === "completed" || claimState === "released") {
|
|
626
|
+
// A completed or released claim is done: retire it.
|
|
627
|
+
if (removeClaim(registryPath, claimEntry.issueUrl)) {
|
|
628
|
+
retiredClaims.push(`${claimEntry.owner}/${claimEntry.repo}#${claimEntry.number} "${claimEntry.issueUrl}" — claim ${claimState ?? "resolved"}; retired from the registry`);
|
|
629
|
+
}
|
|
630
|
+
continue;
|
|
631
|
+
}
|
|
632
|
+
const h = bucketClaim({ claim: claimEntry, status, issueUpdatedAt, now });
|
|
633
|
+
claims.push({ claim: claimEntry, bucket: h.bucket, detail: h.detail, prUrl: h.prUrl });
|
|
634
|
+
}
|
|
635
|
+
catch (err) {
|
|
636
|
+
claims.push({ claim: claimEntry, bucket: "healthy-active", detail: "", error: err instanceof Error ? err.message : String(err) });
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
}
|
|
457
640
|
const partial = {
|
|
458
|
-
reports, needsYouNow, waitingOnThem, quiet,
|
|
641
|
+
reports, needsYouNow, waitingOnThem, quiet,
|
|
642
|
+
transientFailures, repoNotes,
|
|
643
|
+
firstRun, prsChecked: reports.length + transientFailures.length,
|
|
644
|
+
claims, retiredClaims, claimsRegistryMissing, claimsOnly: opts.claimsOnly ?? false,
|
|
459
645
|
};
|
|
460
646
|
const markdown = renderMarkdown(reports, partial);
|
|
461
647
|
const json = {
|
|
@@ -464,13 +650,17 @@ export async function babysit(opts) {
|
|
|
464
650
|
needsYouNow: needsYouNow.map((a) => ({ pr: a.pr, text: a.text, next: a.next })),
|
|
465
651
|
waitingOnThem: waitingOnThem.map((a) => ({ pr: a.pr, text: a.text, next: a.next })),
|
|
466
652
|
quiet,
|
|
653
|
+
transientFailures: transientFailures.map((f) => ({ pr: f.pr, errorKind: f.errorKind, detail: f.detail })),
|
|
654
|
+
repoNotes,
|
|
655
|
+
claims: claims.map((c) => ({ issue: c.claim.issueUrl, bucket: c.bucket, detail: c.detail, prUrl: c.prUrl ?? null, error: c.error ?? null })),
|
|
656
|
+
retiredClaims,
|
|
467
657
|
reports: reports.map((r) => ({
|
|
468
658
|
pr: r.pr, title: r.title, headSha: r.headSha, headChanged: r.headChanged,
|
|
469
659
|
conflicts: r.conflicts, ciVerdict: r.ciVerdict,
|
|
470
660
|
yoursFailing: r.yoursFailing, pendingChecks: r.pendingChecks, stuckChecks: r.stuckChecks,
|
|
471
661
|
newLikelyReal: r.newLikelyReal.map((f) => f.summary),
|
|
472
662
|
newNeedsDecision: r.newNeedsDecision.map((f) => f.summary),
|
|
473
|
-
newGuardFlags: r.newGuardFlags, guardSummary: r.guardSummary,
|
|
663
|
+
newGuardFlags: r.newGuardFlags, repoNotes: r.repoNotes, guardSummary: r.guardSummary,
|
|
474
664
|
})),
|
|
475
665
|
};
|
|
476
666
|
return { ...partial, markdown, json };
|
package/dist/babysit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babysit.js","sourceRoot":"","sources":["../src/babysit.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"babysit.js","sourceRoot":"","sources":["../src/babysit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claims babysitting (Greenlight v0.9.0): for every claim in the my-claims
|
|
3
|
+
* registry, run the issue's protocol status and bucket what it says into
|
|
4
|
+
* one of six buckets.
|
|
5
|
+
*
|
|
6
|
+
* Buckets (in priority order):
|
|
7
|
+
* linked — a PR is open against the claim: the work is with the
|
|
8
|
+
* maintainer; fine, no action.
|
|
9
|
+
* queue-lost — someone ahead completed, the claim expired, or the
|
|
10
|
+
* issue's active claim belongs to someone else: the
|
|
11
|
+
* claim no longer owns the work.
|
|
12
|
+
* expiring — the lease has under 48h left: renew or land the PR.
|
|
13
|
+
* unlinked-stale — 72h since the claim with no PR ever linked: the
|
|
14
|
+
* claim is talk, not work.
|
|
15
|
+
* heartbeat-due — the lease is past half with no activity on the
|
|
16
|
+
* issue: post a progress note before the lease dies.
|
|
17
|
+
* healthy-active — none of the above: the claim is alive and on pace.
|
|
18
|
+
*
|
|
19
|
+
* Pure: every network-shaped input comes in on the argument, so fixtures
|
|
20
|
+
* plus mocked status responses prove the bucketing.
|
|
21
|
+
*/
|
|
22
|
+
import type { IssueStatusPayload } from "./protocol.js";
|
|
23
|
+
import type { MyClaim } from "./claims-registry.js";
|
|
24
|
+
export type ClaimBucket = "linked" | "healthy-active" | "heartbeat-due" | "expiring" | "unlinked-stale" | "queue-lost";
|
|
25
|
+
/** "No activity" window for the unlinked-stale bucket. */
|
|
26
|
+
export declare const UNLINKED_STALE_HOURS = 72;
|
|
27
|
+
/** Lease-remaining threshold for the expiring bucket. */
|
|
28
|
+
export declare const EXPIRING_HOURS = 48;
|
|
29
|
+
export interface ClaimHealthInput {
|
|
30
|
+
claim: MyClaim;
|
|
31
|
+
/** Protocol status for the claimed issue. */
|
|
32
|
+
status: IssueStatusPayload;
|
|
33
|
+
/** The issue's updated_at (null when unreadable): heartbeat evidence. */
|
|
34
|
+
issueUpdatedAt: string | null;
|
|
35
|
+
now?: Date;
|
|
36
|
+
}
|
|
37
|
+
export interface ClaimHealth {
|
|
38
|
+
bucket: ClaimBucket;
|
|
39
|
+
/** One short line explaining the bucket, for the babysit report. */
|
|
40
|
+
detail: string;
|
|
41
|
+
/** The PR URL behind a linked bucket, when known. */
|
|
42
|
+
prUrl?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function bucketClaim(input: ClaimHealthInput): ClaimHealth;
|