@feigi/fleet-ctl 3.82.4 → 3.82.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feigi/fleet-ctl",
3
- "version": "3.82.4",
3
+ "version": "3.82.5",
4
4
  "description": "Agent fleet: run-team controller, merge bot, PR reviewer, and the ticket pipeline they share",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -599,7 +599,7 @@ worktree re-created for an already-open PR is in references/isolation.md.
599
599
  | 1 `LEFT #N: taken …` | in-flight hit, an in-flight check that could not answer, or `claim-ticket.sh` exit 2 | next entry |
600
600
  | 1 `LEFT #N: relabelled elsewhere` | no longer labelled `ready-for-agent` | next entry |
601
601
  | 1 `LEFT #N: closed: fixed by …` | `close` answered `yes` | next entry |
602
- | 1 `LEFT #N: relabelled <label>: …` | `decided` answered with a cause | next entry |
602
+ | 1 `LEFT #N: relabelled <label>: …` | `decided` answered with a cause, or a stranded ruling | next entry |
603
603
  | 1 `LEFT #N: excluded …` | `collision` answered `behind-pr:#M` or `behind-issue:#M`, or its ledger exclusion stands | next entry |
604
604
  | 1 `EMPTY` | the shortlist holds no entry to pull | run `shortlist.mjs` once and Pull again; still empty, hold the slot idle until the next refresh trigger |
605
605
  | 2 | could not look, named on stderr | as the entry paragraph says |
@@ -1771,7 +1771,7 @@ above and every row of the table below already applied; every wake
1771
1771
  ends in it. The deficit is then *computed, not remembered*, which is
1772
1772
  the whole point: a table you must remember to consult is one you will not
1773
1773
  consult under a merge-side event storm, and that is how implementers reached
1774
- 0/target with one approved ticket waiting and ~57 `ready-for-agent` in supply while nobody
1774
+ 0/target with ~57 `ready-for-agent` in supply while nobody
1775
1775
  noticed (#3). What follows stays here as the explanation of what the script decides —
1776
1776
  never as a second, hand-run copy of it. The table's shortlist counts no head
1777
1777
  whose Pull ended this run. A refresh at unclaimed < B leaves `unclaimed=` at
@@ -242,6 +242,7 @@ does:
242
242
  |---|---|
243
243
  | in-flight hit, or an in-flight check that could not answer | drop, next entry |
244
244
  | no longer labelled `ready-for-agent` | drop, next entry |
245
+ | a stranded ruling: a `## Ruling` or `## Triage` comment newer than the last `## Agent Brief`, or on a ticket with none | relabel `ready-for-human`, next entry |
245
246
  | `staleness.mjs` exit 1 — provably fixed | close citing the commit, next entry |
246
247
  | brief names no *what* | relabel `needs-triage`, next entry |
247
248
  | genuine fork — options named, none ruled | relabel `ready-for-human`, next entry |
@@ -266,8 +267,11 @@ that trusted a list built before the relabel landed would hand a ticket the
266
267
  fleet has already judged unimplementable straight to the next member.
267
268
 
268
269
  **Relabel by cause.** An unclaimed ticket is yours to reclassify at the Pull —
269
- three causes, two labels: `ready-for-human` for hands or a fork;
270
- `needs-triage` for a brief that names no *what*.
270
+ `ready-for-human` for hands or a fork; `needs-triage` for a brief that names no
271
+ *what*. A stranded ruling relabels to `ready-for-human` as well, but it is never
272
+ yours to judge: `pull.mjs` finds it at step 3 and posts its own comment naming
273
+ the stranded comment's heading line and URL, which is not one of the
274
+ `briefs/relabel.md` comments.
271
275
  `gh issue edit <N> --remove-label ready-for-agent --add-label <label>` (no
272
276
  `in-progress` to drop — it was never claimed), preceded by exactly one comment,
273
277
  the one `~/.fleet/bin/fleet-run dispatch-prompt.mjs render relabel --kind <kind> …`
@@ -280,8 +284,9 @@ live in `briefs/relabel.md`; `pull.mjs` posts its own one-line copy of the same
280
284
  words when a Pull answer relabels, so a change to either is a change to both.
281
285
 
282
286
  Neither label invokes anything: `/triage` is maintainer-run, and both labels
283
- only stop the ticket costing a read per scan. These comments are the only
284
- writes the fleet makes to a ticket it did not claim.
287
+ only stop the ticket costing a read per scan. These comments, the
288
+ stranded-ruling comment and the comment closing a provably fixed ticket are the
289
+ only writes the fleet makes to a ticket it did not claim.
285
290
 
286
291
  **Exclusion is a ticket row with a premise.** `ledger.mjs row <N> "excluded ·
287
292
  behind-pr:#M"` or `ledger.mjs row <N> "excluded · behind-issue:#M"` — `#M` is