@ai-dossier/sched 0.48.1 → 0.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,7 +23,7 @@
23
23
  * talks to GitHub or git is injected, so tests never shell out.
24
24
  */
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.ANCHOR_CLOSE_BATCH_STATUSES = void 0;
26
+ exports.ORPHAN_SWEEP_MAX_ANCHORS = exports.ORPHAN_SWEEP_MAX_MEMBERS = exports.DEFAULT_ORPHAN_BASE_BRANCH = exports.ANCHOR_CLOSE_BATCH_STATUSES = void 0;
27
27
  exports.openAnchorBatches = openAnchorBatches;
28
28
  exports.formatBatchStatus = formatBatchStatus;
29
29
  exports.anchorLedgerBlockers = anchorLedgerBlockers;
@@ -34,6 +34,12 @@ exports.anchorCloseMarker = anchorCloseMarker;
34
34
  exports.renderAnchorCloseComment = renderAnchorCloseComment;
35
35
  exports.closeAnchor = closeAnchor;
36
36
  exports.sweepAnchors = sweepAnchors;
37
+ exports.parseOrphanAnchorBody = parseOrphanAnchorBody;
38
+ exports.classifyOrphanAnchor = classifyOrphanAnchor;
39
+ exports.orphanAnchorListArgs = orphanAnchorListArgs;
40
+ exports.sweepOrphanAnchors = sweepOrphanAnchors;
41
+ exports.batchAnchorStillOpen = batchAnchorStillOpen;
42
+ const attribution_1 = require("./attribution");
37
43
  const labels_1 = require("./labels");
38
44
  const state_1 = require("./state");
39
45
  /**
@@ -155,33 +161,31 @@ function shippingEvidence(truth, baseBranch, repo, commitInBase) {
155
161
  return { shipped: `commit ${closer.oid.slice(0, 12)}` };
156
162
  }
157
163
  /**
158
- * The member half of the predicate: every member CLOSED as `COMPLETED` by
159
- * shipped code ({@link shippingEvidence}), none handed back, and the ledger
160
- * clean. Shared by the anchor close and by `reconcileStaleBlockedBatches`'
161
- * members-closed evidence, so the two can never disagree about what
162
- * "shipped" means.
164
+ * The GitHub-only half of the member predicate: every member CLOSED as
165
+ * `COMPLETED` by shipped code ({@link shippingEvidence}), none handed back.
166
+ * No ledger involvement — `ledgerStatus` supplies each report's
167
+ * `ledger_status` display field only, never a disqualifier; callers that
168
+ * have a ledger entry to consult layer their own blockers on top (see
169
+ * {@link membersShippedVerdict}). Extracted so {@link classifyOrphanAnchor}
170
+ * can reuse the identical shipping-evidence logic for a batch that, by
171
+ * definition, has no ledger entry to consult.
163
172
  *
164
- * `exhaustive: false` (the engine) stops at the first disqualifying fact and
165
- * skips GitHub entirely when the ledger already disqualifies — a batch that
166
- * stays blocked is re-checked every tick, so the cheap answer matters there.
167
- * `exhaustive: true` (the `sched status --anchors` sweep) reads every member
168
- * so the operator sees each one's state. Either way a failed read stops the
169
- * reads: GitHub being unreachable is not worth N more timeouts.
173
+ * `exhaustive: false` stops at the first disqualifying fact; `exhaustive:
174
+ * true` reads every member so the operator sees each one's state. Either way
175
+ * a failed read stops the reads: GitHub being unreachable is not worth N
176
+ * more timeouts.
170
177
  */
171
- function membersShippedVerdict(state, batch, read, opts = {}) {
172
- const exhaustive = opts.exhaustive === true;
173
- const reasons = [...(opts.extraReasons ?? []), ...anchorLedgerBlockers(state, batch)];
174
- const members = batch.members.map((issue) => ({
178
+ function readMembersShipping(members, read, baseBranch, opts, ledgerStatus) {
179
+ const reports = members.map((issue) => ({
175
180
  issue,
176
- ledger_status: (0, state_1.findEntry)(state, issue)?.status ?? null,
181
+ ledger_status: ledgerStatus(issue),
177
182
  github: 'unknown',
178
183
  state_reason: null,
179
184
  shipped_by: null,
180
185
  }));
181
- if (reasons.length > 0 && !exhaustive)
182
- return { kind: 'needs-operator', reasons, members };
186
+ const reasons = [];
183
187
  let unreachable = null;
184
- for (const member of members) {
188
+ for (const member of reports) {
185
189
  const truth = read(member.issue);
186
190
  if (truth === undefined) {
187
191
  unreachable = member.issue;
@@ -190,7 +194,7 @@ function membersShippedVerdict(state, batch, read, opts = {}) {
190
194
  if (truth.state === 'MISSING') {
191
195
  member.github = 'MISSING';
192
196
  reasons.push(`member-missing:#${member.issue}`);
193
- if (!exhaustive)
197
+ if (!opts.exhaustive)
194
198
  break;
195
199
  continue;
196
200
  }
@@ -203,7 +207,7 @@ function membersShippedVerdict(state, batch, read, opts = {}) {
203
207
  reasons.push(`member-closed-${(truth.stateReason ?? 'unknown').toLowerCase()}:#${member.issue}`);
204
208
  }
205
209
  else {
206
- const evidence = shippingEvidence(truth, batch.base_branch, opts.repo, opts.commitInBase);
210
+ const evidence = shippingEvidence(truth, baseBranch, opts.repo, opts.commitInBase);
207
211
  if ('shipped' in evidence)
208
212
  member.shipped_by = evidence.shipped;
209
213
  else
@@ -212,17 +216,63 @@ function membersShippedVerdict(state, batch, read, opts = {}) {
212
216
  if ((0, labels_1.hasLabel)(truth.labels, labels_1.DECISION_PENDING_LABEL)) {
213
217
  reasons.push(`member-handed-back:#${member.issue}`);
214
218
  }
215
- if (reasons.length > 0 && !exhaustive)
219
+ if (reasons.length > 0 && !opts.exhaustive)
216
220
  break;
217
221
  }
222
+ return { reasons, members: reports, unreachable };
223
+ }
224
+ /**
225
+ * The member half of the predicate: every member CLOSED as `COMPLETED` by
226
+ * shipped code ({@link shippingEvidence}), none handed back, and the ledger
227
+ * clean. Shared by the anchor close and by `reconcileStaleBlockedBatches`'
228
+ * members-closed evidence, so the two can never disagree about what
229
+ * "shipped" means.
230
+ *
231
+ * `exhaustive: false` (the engine) stops at the first disqualifying fact and
232
+ * skips GitHub entirely when the ledger already disqualifies — a batch that
233
+ * stays blocked is re-checked every tick, so the cheap answer matters there.
234
+ * `exhaustive: true` (the `sched status --anchors` sweep) reads every member
235
+ * so the operator sees each one's state. Either way a failed read stops the
236
+ * reads: GitHub being unreachable is not worth N more timeouts.
237
+ */
238
+ function membersShippedVerdict(state, batch, read, opts = {}) {
239
+ const exhaustive = opts.exhaustive === true;
240
+ const ledgerReasons = [...(opts.extraReasons ?? []), ...anchorLedgerBlockers(state, batch)];
241
+ if (ledgerReasons.length > 0 && !exhaustive) {
242
+ const members = batch.members.map((issue) => ({
243
+ issue,
244
+ ledger_status: (0, state_1.findEntry)(state, issue)?.status ?? null,
245
+ github: 'unknown',
246
+ state_reason: null,
247
+ shipped_by: null,
248
+ }));
249
+ return { kind: 'needs-operator', reasons: ledgerReasons, members };
250
+ }
251
+ const gh = readMembersShipping(batch.members, read, batch.base_branch, { exhaustive, repo: opts.repo, commitInBase: opts.commitInBase }, (issue) => (0, state_1.findEntry)(state, issue)?.status ?? null);
252
+ const reasons = [...ledgerReasons, ...gh.reasons];
218
253
  // A known disqualifier outranks an unreachable read: whatever the missing
219
254
  // poll would have said, the batch is not closable on this pass.
220
255
  if (reasons.length > 0)
221
- return { kind: 'needs-operator', reasons, members };
222
- if (unreachable !== null) {
223
- return { kind: 'unknown', reasons: [`issue #${unreachable} unreachable`], members };
256
+ return { kind: 'needs-operator', reasons, members: gh.members };
257
+ if (gh.unreachable !== null) {
258
+ return {
259
+ kind: 'unknown',
260
+ reasons: [`issue #${gh.unreachable} unreachable`],
261
+ members: gh.members,
262
+ };
224
263
  }
225
- return { kind: 'closable', reasons: [], members };
264
+ return { kind: 'closable', reasons: [], members: gh.members };
265
+ }
266
+ function anchorGroundVerdict(read, anchorIssue) {
267
+ const anchor = read(anchorIssue);
268
+ if (anchor === undefined) {
269
+ return { kind: 'unknown', reasons: [`anchor #${anchorIssue} unreachable`] };
270
+ }
271
+ if (anchor.state === 'CLOSED')
272
+ return { kind: 'anchor-closed' };
273
+ if (anchor.state === 'MISSING')
274
+ return { kind: 'anchor-missing' };
275
+ return { kind: 'open', handedBack: (0, labels_1.hasLabel)(anchor.labels, labels_1.DECISION_PENDING_LABEL) };
226
276
  }
227
277
  /**
228
278
  * The full anchor verdict: the anchor itself first (an already-closed anchor
@@ -233,18 +283,15 @@ function classifyAnchor(state, batch, read, opts = {}) {
233
283
  if (batch.anchor === null) {
234
284
  return { kind: 'needs-operator', reasons: ['no-anchor'], members: [] };
235
285
  }
236
- const anchor = read(batch.anchor);
237
- if (anchor === undefined) {
238
- return { kind: 'unknown', reasons: [`anchor #${batch.anchor} unreachable`], members: [] };
239
- }
240
- if (anchor.state === 'CLOSED')
286
+ const ground = anchorGroundVerdict(read, batch.anchor);
287
+ if (ground.kind === 'anchor-closed')
241
288
  return { kind: 'anchor-closed' };
242
- if (anchor.state === 'MISSING') {
289
+ if (ground.kind === 'anchor-missing') {
243
290
  return { kind: 'needs-operator', reasons: ['anchor-missing'], members: [] };
244
291
  }
245
- const extraReasons = (0, labels_1.hasLabel)(anchor.labels, labels_1.DECISION_PENDING_LABEL)
246
- ? ['anchor-handed-back']
247
- : [];
292
+ if (ground.kind === 'unknown')
293
+ return { kind: 'unknown', reasons: ground.reasons, members: [] };
294
+ const extraReasons = ground.handedBack ? ['anchor-handed-back'] : [];
248
295
  return membersShippedVerdict(state, batch, read, { ...opts, extraReasons });
249
296
  }
250
297
  /** The idempotency marker on the anchor-close comment — one per batch. */
@@ -346,4 +393,240 @@ function sweepAnchors(state, read, opts = {}) {
346
393
  }
347
394
  return items;
348
395
  }
396
+ // --- #790: orphan anchors — batches dropped from `state.batches` entirely ---
397
+ //
398
+ // `sweepAnchors` above only ever sees a batch that is still IN `state.batches`
399
+ // (`openAnchorBatches` filters that array). Nothing in this codebase today
400
+ // removes an entry from `state.batches` — `abandonBatch` dissolves a batch
401
+ // in place (status → `dissolved`, still swept) and the one split path
402
+ // (`recovery.ts`'s halved dissolve) carries the parent's `anchor` forward
403
+ // onto the new half-batches. The one way a batch's row is gone while its
404
+ // GitHub anchor stays open is `state.json` itself being lost or reset
405
+ // (`persist.ts`'s `load()` falls back to `createEmptyState()` when the file
406
+ // is missing) — exactly the imboard#4244/#4253 shape: `sched status --json`
407
+ // showed `batches: []` while both anchors were still open. Whatever the
408
+ // cause, an anchor with no ledger row is invisible to `sweepAnchors`
409
+ // (there is no `BatchEntry` to iterate), so this sweep is GitHub-only: list
410
+ // open `batch-epic` anchors directly, recover membership from the anchor's
411
+ // own issue body, and classify with the same shipping-evidence logic
412
+ // `classifyAnchor` uses.
413
+ /** One `- [ ] #N ...` / `- [x] #N ...` member line, plus the `base_branch: <name>` line — both written once at batch creation (per `examples/git/batch-issues-preparation.ds.md`'s Step 6 anchor-body template) and never edited afterward by any code in this repo. */
414
+ const ORPHAN_MEMBER_RE = /^- \[[ xX]\] #(\d+)/gm;
415
+ const ORPHAN_BASE_BRANCH_RE = /^base_branch:\s*(\S+)/m;
416
+ /** The base branch `parseOrphanAnchorBody` falls back to, and `classifyOrphanAnchor` treats as the expected/project-standard base absent an `expectedBaseBranch` override — what `gate-issue` itself defaults to. */
417
+ exports.DEFAULT_ORPHAN_BASE_BRANCH = 'main';
418
+ /** The largest issue number a GitHub GraphQL `Int!` variable accepts — a member number above this could never be a real issue, so it is dropped rather than sent to `read`. */
419
+ const MAX_GITHUB_ISSUE_NUMBER = 2 ** 31 - 1;
420
+ /**
421
+ * #790 (security review): the anchor body is untrusted input — anyone who can
422
+ * comment-and-edit an open `batch-epic` issue controls it. Without a cap, a
423
+ * body with thousands of checklist lines would cost thousands of GraphQL
424
+ * reads per sweep (`classifyOrphanAnchor` runs `exhaustive: true`), and one
425
+ * crafted out-of-range member number would error that member's read,
426
+ * `orphan-unknown` it, and abort {@link sweepOrphanAnchors}'s reads for every
427
+ * later anchor. Both are answered the same way: a body over the cap is
428
+ * reported `orphan-needs-operator` (reason `members-over-cap`) with NO reads
429
+ * performed at all — see {@link classifyOrphanAnchor}.
430
+ */
431
+ exports.ORPHAN_SWEEP_MAX_MEMBERS = 50;
432
+ /**
433
+ * Recover a batch anchor's members and base branch from its own issue body —
434
+ * the only record left once the batch has dropped out of `state.batches`.
435
+ * The body is the batch-compose format (RFC-0001): one member checklist line
436
+ * per issue, then metadata lines including `base_branch: <name>`. Nothing in
437
+ * this codebase edits an anchor's body after creation (verified: no
438
+ * `gh issue edit ... --body` targets an anchor), so the checklist is already
439
+ * the complete, stable membership — a `batch-setup` runstate milestone would
440
+ * only repeat the same list less reliably (missing entirely for an anchor
441
+ * that predates runstate, or belonging to a requeued run's earlier attempt).
442
+ *
443
+ * Both fields are untrusted (#790 security review) and validated before use:
444
+ * a member number outside `1..MAX_GITHUB_ISSUE_NUMBER` is dropped (never sent
445
+ * to `read`), and `base_branch` falls back to `main` — never propagating a
446
+ * string {@link SAFE_REF_RE} would reject as a git ref — when the metadata
447
+ * line is missing OR unsafe. `main` is what `gate-issue` defaults to, so it
448
+ * is what `shippingEvidence` checks a closer against either way.
449
+ * `members_over_cap` is set (members truncated to {@link ORPHAN_SWEEP_MAX_MEMBERS})
450
+ * rather than silently proceeding on a partial list — the caller reports it,
451
+ * never reads a partial membership as if it were the whole batch.
452
+ */
453
+ function parseOrphanAnchorBody(body) {
454
+ const raw = [...body.matchAll(ORPHAN_MEMBER_RE)].map((m) => Number(m[1]));
455
+ const valid = raw.filter((n) => Number.isInteger(n) && n > 0 && n <= MAX_GITHUB_ISSUE_NUMBER);
456
+ const deduped = [...new Set(valid)];
457
+ const members_over_cap = deduped.length > exports.ORPHAN_SWEEP_MAX_MEMBERS;
458
+ const members = members_over_cap ? deduped.slice(0, exports.ORPHAN_SWEEP_MAX_MEMBERS) : deduped;
459
+ const rawBranch = ORPHAN_BASE_BRANCH_RE.exec(body)?.[1];
460
+ const base_branch = rawBranch !== undefined && attribution_1.SAFE_REF_RE.test(rawBranch) ? rawBranch : exports.DEFAULT_ORPHAN_BASE_BRANCH;
461
+ return { members, base_branch, members_over_cap };
462
+ }
463
+ /**
464
+ * Classify one orphan anchor candidate, or `null` when it turns out not to be
465
+ * an orphan at all — the anchor CLOSED between the GitHub list and this read
466
+ * (the caller only ever lists open anchors), the same list-then-read race
467
+ * `sweepAnchors` answers by `continue`-ing past a freshly `anchor-closed`
468
+ * verdict rather than reporting one. Deliberately NOT `classifyAnchor` /
469
+ * `membersShippedVerdict` verbatim: those consult `anchorLedgerBlockers`,
470
+ * which pushes `member-not-in-ledger:#N` for every member of ANY batch not
471
+ * in `state.batches` — for an orphan that is true by construction, so the
472
+ * ledger-backed predicate would answer `needs-operator` unconditionally and
473
+ * this sweep could never report a clean batch as a candidate. This reuses
474
+ * the SAME shipping-evidence logic ({@link readMembersShipping}, which is
475
+ * {@link shippingEvidence} plus the open/not-completed/handed-back checks)
476
+ * and the SAME anchor-level ground truth ({@link anchorGroundVerdict}) that
477
+ * `classifyAnchor` uses — the ledger check is the one piece structurally
478
+ * inapplicable to something not in the ledger.
479
+ */
480
+ function classifyOrphanAnchor(candidate, read, opts = {}) {
481
+ const ground = anchorGroundVerdict(read, candidate.anchor);
482
+ if (ground.kind === 'anchor-closed') {
483
+ // The caller lists only OPEN anchors, so this is a list-then-read race
484
+ // (closed between the list and this read) — same non-event as
485
+ // `sweepAnchors`'s `if (verdict.kind === 'anchor-closed') continue`, so
486
+ // the sweep skips it too rather than reporting a stale action item.
487
+ return null;
488
+ }
489
+ if (ground.kind === 'anchor-missing') {
490
+ return { kind: 'orphan-needs-operator', reasons: ['anchor-missing'], members: [] };
491
+ }
492
+ if (ground.kind === 'unknown') {
493
+ return { kind: 'orphan-unknown', reasons: ground.reasons, members: [] };
494
+ }
495
+ if (candidate.members.length === 0) {
496
+ return { kind: 'orphan-needs-operator', reasons: ['no-members-recovered'], members: [] };
497
+ }
498
+ // #790 security review: a body truncated at the member cap is a PARTIAL
499
+ // membership — reading and clearing those members would be evidence about
500
+ // the wrong batch. Refuse without a single GitHub read.
501
+ if (candidate.members_over_cap === true) {
502
+ return { kind: 'orphan-needs-operator', reasons: ['members-over-cap'], members: [] };
503
+ }
504
+ // #790 review: `base_branch` is parsed from the same untrusted body as
505
+ // `members` — `parseOrphanAnchorBody` already refuses a syntactically
506
+ // UNSAFE value (falls back to `main`), but a syntactically valid one that
507
+ // simply names a DIFFERENT branch is not thereby trustworthy: it decides
508
+ // what counts as "shipped" (`shippingEvidence`), so a value that does not
509
+ // match the project's expected base is never allowed to produce
510
+ // `orphan-closable-candidate` — needs-operator, unconditionally, citing the
511
+ // value, so a human confirms it rather than the sweep silently trusting an
512
+ // editable issue field to pick which branch code must land on to count.
513
+ const expectedBase = opts.expectedBaseBranch ?? exports.DEFAULT_ORPHAN_BASE_BRANCH;
514
+ if (candidate.base_branch !== expectedBase) {
515
+ return {
516
+ kind: 'orphan-needs-operator',
517
+ reasons: [`base-branch-nonstandard:${candidate.base_branch}`],
518
+ members: [],
519
+ };
520
+ }
521
+ const extraReasons = ground.handedBack ? ['anchor-handed-back'] : [];
522
+ const gh = readMembersShipping(candidate.members, read, candidate.base_branch, { exhaustive: true, repo: opts.repo, commitInBase: opts.commitInBase }, () => null);
523
+ const reasons = [...extraReasons, ...gh.reasons];
524
+ if (reasons.length > 0) {
525
+ return { kind: 'orphan-needs-operator', reasons, members: gh.members };
526
+ }
527
+ if (gh.unreachable !== null) {
528
+ return {
529
+ kind: 'orphan-unknown',
530
+ reasons: [`issue #${gh.unreachable} unreachable`],
531
+ members: gh.members,
532
+ };
533
+ }
534
+ return { kind: 'orphan-closable-candidate', reasons: [], members: gh.members };
535
+ }
536
+ /**
537
+ * The exact `gh issue list` argv for the #790 orphan lister — exported so
538
+ * the CLI's real lister (`orphanAnchorListerFor`, `cli/src/commands/sched.ts`)
539
+ * and this package's own tests build the SAME command from ONE definition
540
+ * (#790 review: the earlier AC6 test built its own copy of this argv, so a
541
+ * future change to the production command would not have been caught by
542
+ * it). Read-only by construction — `gh issue list` never writes.
543
+ */
544
+ function orphanAnchorListArgs(repo, limit) {
545
+ return [
546
+ 'issue',
547
+ 'list',
548
+ '--label',
549
+ labels_1.BATCH_ANCHOR_LABEL,
550
+ '--state',
551
+ 'open',
552
+ '-R',
553
+ repo,
554
+ '--json',
555
+ 'number,title,body',
556
+ '--limit',
557
+ String(limit),
558
+ ];
559
+ }
560
+ /** `sched status --anchors`' orphan sweep (#790): bounded read cost per run — a GitHub-side sweep must never grow with the repo's total anchor count. */
561
+ exports.ORPHAN_SWEEP_MAX_ANCHORS = 20;
562
+ /**
563
+ * `sched status --anchors`' orphan sweep (#790): every open `batch-epic`
564
+ * anchor in the pinned project repo whose batch is no longer in
565
+ * `state.batches` — invisible to {@link sweepAnchors}, which only walks the
566
+ * ledger. Report-only by construction, exactly like `sweepAnchors`: `list`
567
+ * and `read` are both pure lookups with no write capability, so this
568
+ * function has no way to close, comment on, label, or edit anything — it
569
+ * only ever builds and returns {@link OrphanAnchorReportItem} rows.
570
+ *
571
+ * `null` means the list itself failed (an unverified repo, or `gh`
572
+ * unreachable) — distinct from `{items: [], truncated: false}` ("asked,
573
+ * found zero orphans"), the same null-vs-empty convention
574
+ * `StatusReport.anchors`/`orphan_anchors` already use for "the sweep did not
575
+ * run at all". Ledger-tracked anchors are excluded BEFORE the
576
+ * {@link ORPHAN_SWEEP_MAX_ANCHORS} cap is applied — a busy repo with 20+ open
577
+ * ledger-tracked `batch-epic` anchors must not let them crowd out the
578
+ * orphans this sweep exists to find; `truncated=true` when the cap still
579
+ * left real orphan candidates unprobed. Classifying stops at the first
580
+ * failed member/anchor read (the same fail-closed posture as
581
+ * `sweepAnchors`): every anchor after that point is reported `orphan-unknown`
582
+ * without a further call.
583
+ */
584
+ function sweepOrphanAnchors(state, list, read, opts = {}) {
585
+ const anchors = list();
586
+ if (anchors === undefined)
587
+ return null;
588
+ const ledgerAnchors = new Set(state.batches.map((b) => b.anchor).filter((a) => a !== null));
589
+ const orphanCandidates = anchors.filter((issue) => !ledgerAnchors.has(issue.number));
590
+ const truncated = orphanCandidates.length > exports.ORPHAN_SWEEP_MAX_ANCHORS;
591
+ const items = [];
592
+ let aborted = false;
593
+ for (const issue of orphanCandidates.slice(0, exports.ORPHAN_SWEEP_MAX_ANCHORS)) {
594
+ const { members, base_branch, members_over_cap } = parseOrphanAnchorBody(issue.body);
595
+ const verdict = aborted
596
+ ? { kind: 'orphan-unknown', reasons: ['GitHub unreachable — sweep aborted'], members: [] }
597
+ : classifyOrphanAnchor({ anchor: issue.number, members, base_branch, members_over_cap }, read, opts);
598
+ if (verdict === null)
599
+ continue; // closed between the list and this read — not an orphan
600
+ if (verdict.kind === 'orphan-unknown')
601
+ aborted = true;
602
+ items.push({
603
+ anchor: issue.number,
604
+ title: issue.title,
605
+ verdict: verdict.kind,
606
+ reasons: verdict.reasons,
607
+ members: verdict.members,
608
+ });
609
+ }
610
+ return { items, truncated };
611
+ }
612
+ // --- #790: warn (never refuse) when a batch with an open anchor is dropped ---
613
+ /**
614
+ * Whether dissolving `batch` (`sched abandon --batch`) should warn an
615
+ * operator: its anchor is set and, per `read`, still OPEN. Pure predicate —
616
+ * the CLI performs the actual GitHub read and the print/journal side effect
617
+ * (`sched abandon --batch`'s handler). `null` covers both "no anchor to warn
618
+ * about" and "read failed / anchor already closed or missing" alike: this
619
+ * function only ever tells the caller whether to warn, never why not to —
620
+ * `abandonBatch` itself must NEVER refuse over this (#790: refusing would
621
+ * wedge exactly the cleanup `abandon` exists for).
622
+ */
623
+ function batchAnchorStillOpen(batch, read) {
624
+ if (batch.anchor === null)
625
+ return null;
626
+ // Reuses `anchorGroundVerdict` (the same anchor-level read `classifyAnchor`
627
+ // and `classifyOrphanAnchor` use) rather than re-deriving "is it OPEN"
628
+ // ourselves — `kind === 'open'` is exactly `truth.state === 'OPEN'`, one
629
+ // ground-truth read of the anchor shared by all three call sites.
630
+ return anchorGroundVerdict(read, batch.anchor).kind === 'open' ? batch.anchor : null;
631
+ }
349
632
  //# sourceMappingURL=anchor-close.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-close.js","sourceRoot":"","sources":["../src/anchor-close.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anchor-close.js","sourceRoot":"","sources":["../src/anchor-close.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { ANCHOR_CLOSE_BATCH_STATUSES, type AnchorCloseOutcome, type AnchorMemberReport, type AnchorReportItem, type AnchorVerdict, anchorCloseMarker, anchorLedgerBlockers, type CommitInBase, classifyAnchor, closeAnchor, formatBatchStatus, type IssueCloseReader, type MembersVerdictOptions, membersShippedVerdict, type OpenAnchorVerdict, openAnchorBatches, renderAnchorCloseComment, shippingEvidence, sweepAnchors, } from './anchor-close';
1
+ export { ANCHOR_CLOSE_BATCH_STATUSES, type AnchorCloseOutcome, type AnchorMemberReport, type AnchorReportItem, type AnchorVerdict, anchorCloseMarker, anchorLedgerBlockers, batchAnchorStillOpen, type CommitInBase, classifyAnchor, classifyOrphanAnchor, closeAnchor, DEFAULT_ORPHAN_BASE_BRANCH, formatBatchStatus, type IssueCloseReader, type MembersVerdictOptions, membersShippedVerdict, type OpenAnchorIssue, type OpenAnchorLister, type OpenAnchorVerdict, ORPHAN_SWEEP_MAX_ANCHORS, ORPHAN_SWEEP_MAX_MEMBERS, type OrphanAnchorCandidate, type OrphanAnchorReportItem, type OrphanAnchorSweepResult, type OrphanAnchorVerdict, openAnchorBatches, orphanAnchorListArgs, parseOrphanAnchorBody, renderAnchorCloseComment, shippingEvidence, sweepAnchors, sweepOrphanAnchors, } from './anchor-close';
2
2
  export { type AmbiguousTest, attributeByOverlap, type BoundaryCommit, type FailingTest, failingTest, hasEarnedFailureEvidence, hasFailingTestEvidence, isReadableVitestReport, type MemberFootprint, type MemberRange, memberOfCommit, memberRanges, type OverlapAttribution, offendersOf, parseBoundaryCommits, parseVitestJson, SAFE_REF_RE, SHA_RE, } from './attribution';
3
3
  export { type BatchDispatchDeps, type BatchTickResult, type CapOutcome, memberBranchFor, resumeBlockedGate, runBatchTick, } from './batch-dispatch';
4
4
  export { type BatchLogEntry, buildBatchRunLogEntries, dispatchPreambleCmd, listBatchDispatchLogs, modelFromCmd, parsePreambleLine, } from './batch-stats';
@@ -9,7 +9,7 @@ export { assertNoDependencyCycle, EnqueueError, type EnqueueInput, type EnqueueO
9
9
  export { createExecRunFenceBinder, createExecRunFenceReleaser, createExecRunFencer, FENCE_TIMEOUT_MS, type FenceOutcome, parseFenceGeneration, type RunFenceBinder, type RunFenceReleaser, type RunFencer, takeoverLabelFor, } from './fence';
10
10
  export { createExecGroundTruth, GIT_OID_RE, type GroundTruth, type GroundTruthMilestone, groundTruthExec, type IssueCloseTruth, isBatchPhaseDone, isBatchTailParked, isMemberBlocked, isMemberComplete, isParkedMilestone, issueCloseReader, isVerifiedComplete, labelNames, memberBlockedReason, type PrTruth, parseIssueCloseTruthJson, parseIssueLabelsJson, parseMilestoneJson, parseMilestoneListJson, parseOpenPrListJson, parsePrViewJson, parseRepoName, parseSetupInfo, prOfMilestone, REVIEW_PARTIAL_REASON, type SetupInfo, } from './groundtruth';
11
11
  export { appendJsonl, batchOfUnit, issueOfUnit, JOURNAL_FILE, Journal, readJsonl, unitEvent, } from './journal';
12
- export { DECISION_PENDING_LABEL, HARD_BLOCK_LABELS, hasLabel, labelOfBlockReason, pickHardBlockLabel, } from './labels';
12
+ export { BATCH_ANCHOR_LABEL, DECISION_PENDING_LABEL, HARD_BLOCK_LABELS, hasLabel, labelOfBlockReason, pickHardBlockLabel, } from './labels';
13
13
  export { CorruptStateError, type EngineLease, type EngineLeaseAcquisition, type EngineLeaseHolder, type EngineLeaseStatus, LockTimeoutError, SchedStore, writeAtomic, } from './persist';
14
14
  export { createExecFn, defaultExec, type ExecFn, resolveProjectRepo, resolveProjectSlug, sanitizeSlug, schedStateDir, } from './project';
15
15
  export { batchRank, compareByPriority, DISPATCHABLE_ISSUE_STATUSES, entryRank, type PriorityRank, } from './readiness';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,22 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DEFAULT_REPORT_PROMPT_TEMPLATE = exports.DEFAULT_PROMPT_TEMPLATE = exports.DEFAULT_MEMBER_PROMPT_TEMPLATE = exports.DEFAULT_FIX_PROMPT_TEMPLATE = exports.DEFAULT_DISPATCH_COMMAND = exports.DEFAULT_DISALLOWED_TOOLS = exports.DEFAULT_BATCH_TAIL_PROMPT_TEMPLATE = exports.DEFAULT_BATCH_REPORT_PROMPT_TEMPLATE = exports.createSpawnDeps = exports.buildTierCommand = exports.buildReportPrompt = exports.buildPrompt = exports.buildMemberPrompt = exports.buildFixPrompt = exports.buildCommandForModel = exports.buildBatchTailPrompt = exports.buildBatchReportPrompt = exports.buildAgentCommand = exports.runAttributionBisect = exports.parsePreambleLine = exports.modelFromCmd = exports.listBatchDispatchLogs = exports.dispatchPreambleCmd = exports.buildBatchRunLogEntries = exports.runBatchTick = exports.resumeBlockedGate = exports.memberBranchFor = exports.SHA_RE = exports.SAFE_REF_RE = exports.parseVitestJson = exports.parseBoundaryCommits = exports.offendersOf = exports.memberRanges = exports.memberOfCommit = exports.isReadableVitestReport = exports.hasFailingTestEvidence = exports.hasEarnedFailureEvidence = exports.failingTest = exports.attributeByOverlap = exports.sweepAnchors = exports.shippingEvidence = exports.renderAnchorCloseComment = exports.openAnchorBatches = exports.membersShippedVerdict = exports.formatBatchStatus = exports.closeAnchor = exports.classifyAnchor = exports.anchorLedgerBlockers = exports.anchorCloseMarker = exports.ANCHOR_CLOSE_BATCH_STATUSES = void 0;
4
- exports.issueCloseReader = exports.isParkedMilestone = exports.isMemberComplete = exports.isMemberBlocked = exports.isBatchTailParked = exports.isBatchPhaseDone = exports.groundTruthExec = exports.GIT_OID_RE = exports.createExecGroundTruth = exports.takeoverLabelFor = exports.parseFenceGeneration = exports.FENCE_TIMEOUT_MS = exports.createExecRunFencer = exports.createExecRunFenceReleaser = exports.createExecRunFenceBinder = exports.parseManifest = exports.labelBlockReason = exports.LABEL_BLOCK_REASON_PREFIX = exports.enqueueEntries = exports.EnqueueError = exports.assertNoDependencyCycle = exports.tick = exports.runLoop = exports.recordTickFailure = exports.unitLogName = exports.tierExecutors = exports.takeoverInstruction = exports.stallTimeoutForSlot = exports.stallTimeoutForPhase = exports.SUPERSESSION_CHECKPOINT_INSTRUCTION = exports.resolveTierSpawn = exports.resolveProfiledDispatch = exports.resolveDispatch = exports.reportTierFor = exports.procStartTime = exports.priorWorkInstruction = exports.OPENCODE_DISPATCH_COMMAND = exports.NO_BACKGROUND_EXIT_INSTRUCTION = exports.memberDispatchTier = exports.journalCmdModelFields = exports.HEADLESS_BACKGROUND_GUARD_SETTINGS = exports.HEADLESS_BACKGROUND_GUARD_HOOK_COMMAND = exports.fileSizeOrZero = exports.FULL_REVIEW_MEMBER_DIRECTIVE = exports.escalateTier = exports.dispatchSummary = exports.dispatchLogPath = exports.DispatchProfileError = exports.DISPATCH_PROFILE_RE = exports.DEFAULT_TIER_MODELS = void 0;
5
- exports.resolveFixAttempt = exports.handlePrConflict = exports.expandEvictionGroups = exports.evictMembers = exports.dissolveBatch = exports.DISSOLVE_REFUSED_PREFIX = exports.createExecMilestonePoster = exports.checkDissolveTrigger = exports.blockBatch = exports.beginFixAttempt = exports.beginAttribution = exports.entryRank = exports.DISPATCHABLE_ISSUE_STATUSES = exports.compareByPriority = exports.batchRank = exports.schedStateDir = exports.sanitizeSlug = exports.resolveProjectSlug = exports.resolveProjectRepo = exports.defaultExec = exports.createExecFn = exports.writeAtomic = exports.SchedStore = exports.LockTimeoutError = exports.CorruptStateError = exports.pickHardBlockLabel = exports.labelOfBlockReason = exports.hasLabel = exports.HARD_BLOCK_LABELS = exports.DECISION_PENDING_LABEL = exports.unitEvent = exports.readJsonl = exports.Journal = exports.JOURNAL_FILE = exports.issueOfUnit = exports.batchOfUnit = exports.appendJsonl = exports.REVIEW_PARTIAL_REASON = exports.prOfMilestone = exports.parseSetupInfo = exports.parseRepoName = exports.parsePrViewJson = exports.parseOpenPrListJson = exports.parseMilestoneListJson = exports.parseMilestoneJson = exports.parseIssueLabelsJson = exports.parseIssueCloseTruthJson = exports.memberBlockedReason = exports.labelNames = exports.isVerifiedComplete = void 0;
6
- exports.buildStatusWarnings = exports.buildStatusReport = exports.buildKeptWorktreeWarnings = exports.validateState = exports.validatedMembersOf = exports.transitionSlot = exports.transitionIssue = exports.transitionBatch = exports.TRANSITIONS = exports.slotsForBatch = exports.requeueMember = exports.recordedMemberBranch = exports.patchSlot = exports.patchBatch = exports.parkMember = exports.PARKED_MEMBER_STATUSES = exports.memberExitEvidence = exports.memberDispatchProfile = exports.isPreservedMember = exports.findEntry = exports.findBatch = exports.duplicateEvictionDetail = exports.distinctEvictions = exports.createEmptyState = exports.createBatch = exports.batchMemberUnit = exports.appendEvictions = exports.allowedBatchTransitions = exports.stopIssue = exports.stopBatch = exports.setPaused = exports.runnableUnits = exports.requeueParkedMember = exports.reprioritizeIssue = exports.reprioritizeBatch = exports.freeCapacity = exports.dependencyBlockers = exports.computeAssignments = exports.batchBlockers = exports.assignToIdleSlot = exports.abandonIssue = exports.abandonBatch = exports.usageParserFor = exports.schedTelemetryEnabled = exports.schedRunsLogPath = exports.readDispatchLog = exports.parseFenceAbort = exports.finalizeRunLogEntry = exports.buildSchedRunLogEntry = exports.appendSchedRunLog = void 0;
7
- exports.TIER_ORDER = exports.TIER_LADDER = exports.TERMINAL_ISSUE_STATUSES = exports.TERMINAL_BATCH_STATUSES = exports.SLOT_ROLES = exports.SchedNotFoundError = exports.SCHEMA_VERSION = exports.SATISFIED_ISSUE_STATUSES = exports.PHASES = exports.MIN_MAX_SLOTS = exports.MERGED_BATCH_STATUSES = exports.MEMBER_RUN_STATUSES = exports.MEMBER_EXIT_KINDS = exports.MAX_REBASE_ATTEMPTS = exports.MAX_MAX_SLOTS = exports.MAX_FULL_REVIEW_MEMBERS = exports.MAX_FIX_ATTEMPTS_PER_MEMBER = exports.LIVE_SLOT_STATUSES = exports.LEGACY_SCHEMA_VERSIONS = exports.LEGACY_CONFIG_SCHEMA_VERSIONS = exports.JOURNAL_DEDUP_REANNOUNCE_TICKS = exports.IllegalTransitionError = exports.FIX_ATTEMPT_TIER = exports.ESCALATION_CAP = exports.EngineTooOldError = exports.DISSOLVE_EVICTION_FRACTION = exports.DEFAULT_STALL_TIMEOUT_MS = exports.DEFAULT_RECONCILE_INTERVAL_MS = exports.DEFAULT_PR_POLL_INTERVAL_MS = exports.DEFAULT_PHASE_STALL_TIMEOUT_MS = exports.DEFAULT_MAX_SLOTS = exports.DEFAULT_LABEL_POLL_INTERVAL_MS = exports.DEFAULT_ISSUE_PRIORITY = exports.DEFAULT_DISSOLVE_POLICY = exports.DEFAULT_BATCH_PRIORITY = exports.CONFIG_SCHEMA_VERSION = exports.BATCH_PHASES = exports.TEARDOWN_TIMEOUT_MS = exports.runTeardown = exports.poolEntryFor = exports.POOL_BIN = exports.POOL_ARGS_PREFIX = exports.isSafeWorktree = exports.defaultFsExists = exports.STATUS_HEALTH_WARNING_AGE_MS = exports.keptWorktreeCandidates = exports.KEPT_WORKTREE_PROBE_LIMIT = exports.defaultKeptWorktreeReader = void 0;
3
+ exports.createSpawnDeps = exports.buildTierCommand = exports.buildReportPrompt = exports.buildPrompt = exports.buildMemberPrompt = exports.buildFixPrompt = exports.buildCommandForModel = exports.buildBatchTailPrompt = exports.buildBatchReportPrompt = exports.buildAgentCommand = exports.runAttributionBisect = exports.parsePreambleLine = exports.modelFromCmd = exports.listBatchDispatchLogs = exports.dispatchPreambleCmd = exports.buildBatchRunLogEntries = exports.runBatchTick = exports.resumeBlockedGate = exports.memberBranchFor = exports.SHA_RE = exports.SAFE_REF_RE = exports.parseVitestJson = exports.parseBoundaryCommits = exports.offendersOf = exports.memberRanges = exports.memberOfCommit = exports.isReadableVitestReport = exports.hasFailingTestEvidence = exports.hasEarnedFailureEvidence = exports.failingTest = exports.attributeByOverlap = exports.sweepOrphanAnchors = exports.sweepAnchors = exports.shippingEvidence = exports.renderAnchorCloseComment = exports.parseOrphanAnchorBody = exports.orphanAnchorListArgs = exports.openAnchorBatches = exports.ORPHAN_SWEEP_MAX_MEMBERS = exports.ORPHAN_SWEEP_MAX_ANCHORS = exports.membersShippedVerdict = exports.formatBatchStatus = exports.DEFAULT_ORPHAN_BASE_BRANCH = exports.closeAnchor = exports.classifyOrphanAnchor = exports.classifyAnchor = exports.batchAnchorStillOpen = exports.anchorLedgerBlockers = exports.anchorCloseMarker = exports.ANCHOR_CLOSE_BATCH_STATUSES = void 0;
4
+ exports.createExecGroundTruth = exports.takeoverLabelFor = exports.parseFenceGeneration = exports.FENCE_TIMEOUT_MS = exports.createExecRunFencer = exports.createExecRunFenceReleaser = exports.createExecRunFenceBinder = exports.parseManifest = exports.labelBlockReason = exports.LABEL_BLOCK_REASON_PREFIX = exports.enqueueEntries = exports.EnqueueError = exports.assertNoDependencyCycle = exports.tick = exports.runLoop = exports.recordTickFailure = exports.unitLogName = exports.tierExecutors = exports.takeoverInstruction = exports.stallTimeoutForSlot = exports.stallTimeoutForPhase = exports.SUPERSESSION_CHECKPOINT_INSTRUCTION = exports.resolveTierSpawn = exports.resolveProfiledDispatch = exports.resolveDispatch = exports.reportTierFor = exports.procStartTime = exports.priorWorkInstruction = exports.OPENCODE_DISPATCH_COMMAND = exports.NO_BACKGROUND_EXIT_INSTRUCTION = exports.memberDispatchTier = exports.journalCmdModelFields = exports.HEADLESS_BACKGROUND_GUARD_SETTINGS = exports.HEADLESS_BACKGROUND_GUARD_HOOK_COMMAND = exports.fileSizeOrZero = exports.FULL_REVIEW_MEMBER_DIRECTIVE = exports.escalateTier = exports.dispatchSummary = exports.dispatchLogPath = exports.DispatchProfileError = exports.DISPATCH_PROFILE_RE = exports.DEFAULT_TIER_MODELS = exports.DEFAULT_REPORT_PROMPT_TEMPLATE = exports.DEFAULT_PROMPT_TEMPLATE = exports.DEFAULT_MEMBER_PROMPT_TEMPLATE = exports.DEFAULT_FIX_PROMPT_TEMPLATE = exports.DEFAULT_DISPATCH_COMMAND = exports.DEFAULT_DISALLOWED_TOOLS = exports.DEFAULT_BATCH_TAIL_PROMPT_TEMPLATE = exports.DEFAULT_BATCH_REPORT_PROMPT_TEMPLATE = void 0;
5
+ exports.beginFixAttempt = exports.beginAttribution = exports.entryRank = exports.DISPATCHABLE_ISSUE_STATUSES = exports.compareByPriority = exports.batchRank = exports.schedStateDir = exports.sanitizeSlug = exports.resolveProjectSlug = exports.resolveProjectRepo = exports.defaultExec = exports.createExecFn = exports.writeAtomic = exports.SchedStore = exports.LockTimeoutError = exports.CorruptStateError = exports.pickHardBlockLabel = exports.labelOfBlockReason = exports.hasLabel = exports.HARD_BLOCK_LABELS = exports.DECISION_PENDING_LABEL = exports.BATCH_ANCHOR_LABEL = exports.unitEvent = exports.readJsonl = exports.Journal = exports.JOURNAL_FILE = exports.issueOfUnit = exports.batchOfUnit = exports.appendJsonl = exports.REVIEW_PARTIAL_REASON = exports.prOfMilestone = exports.parseSetupInfo = exports.parseRepoName = exports.parsePrViewJson = exports.parseOpenPrListJson = exports.parseMilestoneListJson = exports.parseMilestoneJson = exports.parseIssueLabelsJson = exports.parseIssueCloseTruthJson = exports.memberBlockedReason = exports.labelNames = exports.isVerifiedComplete = exports.issueCloseReader = exports.isParkedMilestone = exports.isMemberComplete = exports.isMemberBlocked = exports.isBatchTailParked = exports.isBatchPhaseDone = exports.groundTruthExec = exports.GIT_OID_RE = void 0;
6
+ exports.slotsForBatch = exports.requeueMember = exports.recordedMemberBranch = exports.patchSlot = exports.patchBatch = exports.parkMember = exports.PARKED_MEMBER_STATUSES = exports.memberExitEvidence = exports.memberDispatchProfile = exports.isPreservedMember = exports.findEntry = exports.findBatch = exports.duplicateEvictionDetail = exports.distinctEvictions = exports.createEmptyState = exports.createBatch = exports.batchMemberUnit = exports.appendEvictions = exports.allowedBatchTransitions = exports.stopIssue = exports.stopBatch = exports.setPaused = exports.runnableUnits = exports.requeueParkedMember = exports.reprioritizeIssue = exports.reprioritizeBatch = exports.freeCapacity = exports.dependencyBlockers = exports.computeAssignments = exports.batchBlockers = exports.assignToIdleSlot = exports.abandonIssue = exports.abandonBatch = exports.usageParserFor = exports.schedTelemetryEnabled = exports.schedRunsLogPath = exports.readDispatchLog = exports.parseFenceAbort = exports.finalizeRunLogEntry = exports.buildSchedRunLogEntry = exports.appendSchedRunLog = exports.resolveFixAttempt = exports.handlePrConflict = exports.expandEvictionGroups = exports.evictMembers = exports.dissolveBatch = exports.DISSOLVE_REFUSED_PREFIX = exports.createExecMilestonePoster = exports.checkDissolveTrigger = exports.blockBatch = void 0;
7
+ exports.SATISFIED_ISSUE_STATUSES = exports.PHASES = exports.MIN_MAX_SLOTS = exports.MERGED_BATCH_STATUSES = exports.MEMBER_RUN_STATUSES = exports.MEMBER_EXIT_KINDS = exports.MAX_REBASE_ATTEMPTS = exports.MAX_MAX_SLOTS = exports.MAX_FULL_REVIEW_MEMBERS = exports.MAX_FIX_ATTEMPTS_PER_MEMBER = exports.LIVE_SLOT_STATUSES = exports.LEGACY_SCHEMA_VERSIONS = exports.LEGACY_CONFIG_SCHEMA_VERSIONS = exports.JOURNAL_DEDUP_REANNOUNCE_TICKS = exports.IllegalTransitionError = exports.FIX_ATTEMPT_TIER = exports.ESCALATION_CAP = exports.EngineTooOldError = exports.DISSOLVE_EVICTION_FRACTION = exports.DEFAULT_STALL_TIMEOUT_MS = exports.DEFAULT_RECONCILE_INTERVAL_MS = exports.DEFAULT_PR_POLL_INTERVAL_MS = exports.DEFAULT_PHASE_STALL_TIMEOUT_MS = exports.DEFAULT_MAX_SLOTS = exports.DEFAULT_LABEL_POLL_INTERVAL_MS = exports.DEFAULT_ISSUE_PRIORITY = exports.DEFAULT_DISSOLVE_POLICY = exports.DEFAULT_BATCH_PRIORITY = exports.CONFIG_SCHEMA_VERSION = exports.BATCH_PHASES = exports.TEARDOWN_TIMEOUT_MS = exports.runTeardown = exports.poolEntryFor = exports.POOL_BIN = exports.POOL_ARGS_PREFIX = exports.isSafeWorktree = exports.defaultFsExists = exports.STATUS_HEALTH_WARNING_AGE_MS = exports.keptWorktreeCandidates = exports.KEPT_WORKTREE_PROBE_LIMIT = exports.defaultKeptWorktreeReader = exports.buildStatusWarnings = exports.buildStatusReport = exports.buildKeptWorktreeWarnings = exports.validateState = exports.validatedMembersOf = exports.transitionSlot = exports.transitionIssue = exports.transitionBatch = exports.TRANSITIONS = void 0;
8
+ exports.TIER_ORDER = exports.TIER_LADDER = exports.TERMINAL_ISSUE_STATUSES = exports.TERMINAL_BATCH_STATUSES = exports.SLOT_ROLES = exports.SchedNotFoundError = exports.SCHEMA_VERSION = void 0;
8
9
  var anchor_close_1 = require("./anchor-close");
9
10
  Object.defineProperty(exports, "ANCHOR_CLOSE_BATCH_STATUSES", { enumerable: true, get: function () { return anchor_close_1.ANCHOR_CLOSE_BATCH_STATUSES; } });
10
11
  Object.defineProperty(exports, "anchorCloseMarker", { enumerable: true, get: function () { return anchor_close_1.anchorCloseMarker; } });
11
12
  Object.defineProperty(exports, "anchorLedgerBlockers", { enumerable: true, get: function () { return anchor_close_1.anchorLedgerBlockers; } });
13
+ Object.defineProperty(exports, "batchAnchorStillOpen", { enumerable: true, get: function () { return anchor_close_1.batchAnchorStillOpen; } });
12
14
  Object.defineProperty(exports, "classifyAnchor", { enumerable: true, get: function () { return anchor_close_1.classifyAnchor; } });
15
+ Object.defineProperty(exports, "classifyOrphanAnchor", { enumerable: true, get: function () { return anchor_close_1.classifyOrphanAnchor; } });
13
16
  Object.defineProperty(exports, "closeAnchor", { enumerable: true, get: function () { return anchor_close_1.closeAnchor; } });
17
+ Object.defineProperty(exports, "DEFAULT_ORPHAN_BASE_BRANCH", { enumerable: true, get: function () { return anchor_close_1.DEFAULT_ORPHAN_BASE_BRANCH; } });
14
18
  Object.defineProperty(exports, "formatBatchStatus", { enumerable: true, get: function () { return anchor_close_1.formatBatchStatus; } });
15
19
  Object.defineProperty(exports, "membersShippedVerdict", { enumerable: true, get: function () { return anchor_close_1.membersShippedVerdict; } });
20
+ Object.defineProperty(exports, "ORPHAN_SWEEP_MAX_ANCHORS", { enumerable: true, get: function () { return anchor_close_1.ORPHAN_SWEEP_MAX_ANCHORS; } });
21
+ Object.defineProperty(exports, "ORPHAN_SWEEP_MAX_MEMBERS", { enumerable: true, get: function () { return anchor_close_1.ORPHAN_SWEEP_MAX_MEMBERS; } });
16
22
  Object.defineProperty(exports, "openAnchorBatches", { enumerable: true, get: function () { return anchor_close_1.openAnchorBatches; } });
23
+ Object.defineProperty(exports, "orphanAnchorListArgs", { enumerable: true, get: function () { return anchor_close_1.orphanAnchorListArgs; } });
24
+ Object.defineProperty(exports, "parseOrphanAnchorBody", { enumerable: true, get: function () { return anchor_close_1.parseOrphanAnchorBody; } });
17
25
  Object.defineProperty(exports, "renderAnchorCloseComment", { enumerable: true, get: function () { return anchor_close_1.renderAnchorCloseComment; } });
18
26
  Object.defineProperty(exports, "shippingEvidence", { enumerable: true, get: function () { return anchor_close_1.shippingEvidence; } });
19
27
  Object.defineProperty(exports, "sweepAnchors", { enumerable: true, get: function () { return anchor_close_1.sweepAnchors; } });
28
+ Object.defineProperty(exports, "sweepOrphanAnchors", { enumerable: true, get: function () { return anchor_close_1.sweepOrphanAnchors; } });
20
29
  var attribution_1 = require("./attribution");
21
30
  Object.defineProperty(exports, "attributeByOverlap", { enumerable: true, get: function () { return attribution_1.attributeByOverlap; } });
22
31
  Object.defineProperty(exports, "failingTest", { enumerable: true, get: function () { return attribution_1.failingTest; } });
@@ -140,6 +149,7 @@ Object.defineProperty(exports, "unitEvent", { enumerable: true, get: function ()
140
149
  // since #544, but stay exported through `./enqueue` above — that is where
141
150
  // they were first public, and re-exporting them twice would collide.
142
151
  var labels_1 = require("./labels");
152
+ Object.defineProperty(exports, "BATCH_ANCHOR_LABEL", { enumerable: true, get: function () { return labels_1.BATCH_ANCHOR_LABEL; } });
143
153
  Object.defineProperty(exports, "DECISION_PENDING_LABEL", { enumerable: true, get: function () { return labels_1.DECISION_PENDING_LABEL; } });
144
154
  Object.defineProperty(exports, "HARD_BLOCK_LABELS", { enumerable: true, get: function () { return labels_1.HARD_BLOCK_LABELS; } });
145
155
  Object.defineProperty(exports, "hasLabel", { enumerable: true, get: function () { return labels_1.hasLabel; } });