@feigi/fleet-ctl 3.21.6 → 3.21.8
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
|
@@ -513,8 +513,12 @@ const FILES = [
|
|
|
513
513
|
},
|
|
514
514
|
{
|
|
515
515
|
path: ["scripts", "ledger.mjs"],
|
|
516
|
-
|
|
517
|
-
|
|
516
|
+
// #2516. The `filed` subcommand's isDigits() comment pointed at
|
|
517
|
+
// "(line ~1527)" for the `keyNum` check it mirrors — a line that had
|
|
518
|
+
// already drifted into an unrelated comment. It names the check by its
|
|
519
|
+
// enclosing function now.
|
|
520
|
+
stale: [/fleet-plugin-design\.md:200/, /candidates\.mjs:279/, /\blines?\s+~?\d+/],
|
|
521
|
+
live: ["refuseIfCapped", "runDispatch's `keyNum` check"],
|
|
518
522
|
},
|
|
519
523
|
{
|
|
520
524
|
path: ["scripts", "ledger.test.mjs"],
|
|
@@ -205,12 +205,13 @@ test("duty 1 says worktree-audit.sh takes no argument and audits every worktree"
|
|
|
205
205
|
// equal alternatives, then halted on "dirty or diverged" — and neither can
|
|
206
206
|
// see diverged. Porcelain is empty over a clean tree one commit past the pin,
|
|
207
207
|
// and the audit's `ahead` is counted against `origin/main`
|
|
208
|
-
// (worktree-audit.sh's `base=${BASE_REF:-origin/main}`), which a
|
|
209
|
-
// is
|
|
210
|
-
// head-equality against the dispatch pin. And "find this
|
|
211
|
-
// no rule for a row that cannot answer, or for no row at
|
|
212
|
-
// holds ONE sentence (`sentences()`, #1940), so a clause
|
|
213
|
-
// the duty reds its own pin rather than being satisfied by
|
|
208
|
+
// (worktree-audit.sh's `base=${BASE_REF:-origin/main}`), which a healthy
|
|
209
|
+
// worktree on an open, unmerged PR is ahead of too. The only divergence check
|
|
210
|
+
// is the cause block's head-equality against the dispatch pin. And "find this
|
|
211
|
+
// worktree's row" gave no rule for a row that cannot answer, or for no row at
|
|
212
|
+
// all. Each pin below holds ONE sentence (`sentences()`, #1940), so a clause
|
|
213
|
+
// deleted from inside the duty reds its own pin rather than being satisfied by
|
|
214
|
+
// a neighbour.
|
|
214
215
|
test("duty 1 names the instrument for each check, and halts on a row that cannot answer", () => {
|
|
215
216
|
const said = (re) => sentences(duty1Text()).some((s) => re.test(s));
|
|
216
217
|
assert.ok(
|
|
@@ -225,6 +226,19 @@ test("duty 1 names the instrument for each check, and halts on a row that cannot
|
|
|
225
226
|
said(/row's `ahead`.*counted against `origin\/main`.*cannot answer/),
|
|
226
227
|
"duty 1 no longer says the audit's `ahead` is counted against origin/main — a finisher reading it as divergence sees every PR worktree as diverged, or learns to ignore it",
|
|
227
228
|
);
|
|
229
|
+
// The reason `ahead` cannot answer holds for the PR the finisher runs on: an
|
|
230
|
+
// open, unmerged one. It is not true of every PR worktree — after a merge
|
|
231
|
+
// commit into a fetched origin/main the branch's `ahead` reads 0 — so the
|
|
232
|
+
// claim is scoped, never "always", and the scope sits in the same sentence.
|
|
233
|
+
assert.ok(
|
|
234
|
+
said(/row's `ahead`.*counted against `origin\/main`.*open, unmerged PR.*cannot answer/),
|
|
235
|
+
"duty 1 no longer scopes the `ahead` reason to an open, unmerged PR's worktree — after a merge into a fetched origin/main a PR worktree's `ahead` reads 0, so an unscoped claim is false",
|
|
236
|
+
);
|
|
237
|
+
assert.doesNotMatch(
|
|
238
|
+
flat(RUN_TEAM),
|
|
239
|
+
/\balways\b[^.]{0,20}\bahead\b/i,
|
|
240
|
+
"the run-team skill states an unconditional lead over origin/main again — a PR worktree's `ahead` reads 0 once its merge commit is in a fetched origin/main",
|
|
241
|
+
);
|
|
228
242
|
// The three non-clean row shapes, each halting and each named. Unreadable
|
|
229
243
|
// and missing share `readable:false` and differ only in their counts, so
|
|
230
244
|
// each is pinned with its count shape and stderr line — dropping one leaves
|
package/scripts/ledger.mjs
CHANGED
|
@@ -884,8 +884,8 @@ if (cmd === "read") {
|
|
|
884
884
|
refuseStrayInId(issue, "an issue number");
|
|
885
885
|
const subject = subjectParts.join(" ");
|
|
886
886
|
const id = issue.replace(/^#/, "");
|
|
887
|
-
// isDigits() gates id the same way
|
|
888
|
-
//
|
|
887
|
+
// isDigits() gates id the same way runDispatch's `keyNum` check gates the
|
|
888
|
+
// ticket/PR key: left unvalidated, a non-digit id becomes a `#<id> ` prefix
|
|
889
889
|
// subjectOf()'s digits-only regex cannot strip, so a near-duplicate
|
|
890
890
|
// `check` against that row silently degrades from the hard "already
|
|
891
891
|
// filed" block to a soft near-miss suggestion instead.
|
package/skills/run-team/SKILL.md
CHANGED
|
@@ -2578,10 +2578,10 @@ a minute apart showed *different* mutants, so a member's report and any single
|
|
|
2578
2578
|
the worktree unreadable. **Diverged:** the worktree's `HEAD` against your
|
|
2579
2579
|
dispatch pin — the cause block's head-equality check below. Neither
|
|
2580
2580
|
instrument above answers it: `git status --porcelain` reports no commits,
|
|
2581
|
-
and the row's `ahead` is counted against `origin/main`, which a
|
|
2582
|
-
is
|
|
2583
|
-
each named in the report with the script's
|
|
2584
|
-
prints one: `readable:false` with `null` counts
|
|
2581
|
+
and the row's `ahead` is counted against `origin/main`, which a healthy
|
|
2582
|
+
worktree on an open, unmerged PR is ahead of too, so it cannot answer this.
|
|
2583
|
+
Three row shapes halt too, each named in the report with the script's
|
|
2584
|
+
stderr line quoted where it prints one: `readable:false` with `null` counts
|
|
2585
2585
|
(`UNREADABLE: <wt> (<cause>)`) is *worktree unreadable*, `readable:false`
|
|
2586
2586
|
with zero counts (`MISSING on disk: <wt>`) is *worktree missing*, and no
|
|
2587
2587
|
row for this worktree at all is *worktree absent*. `git status` is no
|