@rness/cli 0.17.0 → 0.17.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 CHANGED
@@ -388,7 +388,7 @@ repository, the board).
388
388
  `"projects": { "pulse": <number> }`; both at once are refused.
389
389
  - A provider _written_ in `rness.json` that this version cannot talk to
390
390
  (`gitlab`) is refused by `validate`, `create`, `login` and `pulse`:
391
- `provider "gitlab" is not supported by @rness/cli 0.17.0 (supported:
391
+ `provider "gitlab" is not supported by @rness/cli 0.17.1 (supported:
392
392
  github)`. `add`, `sync` and the local commands never refuse. `null` is not a
393
393
  value: an absent key means none.
394
394
 
@@ -565,6 +565,16 @@ per repository, the files to commit there.
565
565
  Exit codes: 0 success, 1 failure, 2 usage — or a refusal without a TTY.
566
566
  `RNESS_DEBUG=1` adds stack traces; `RNESS_NO_DELEGATE=1` skips the delegation.
567
567
 
568
+ ## 0.17.1 — pulse shows it is at work
569
+
570
+ - `pulse create` and `pulse sync` show a transient line while they write a
571
+ project's items and bodies: each item is a few requests, one at a time,
572
+ and 34 cards took minutes with nothing on screen.
573
+ - A collection's label is made only when a document carries it: a
574
+ directory with no card (`assets/`) is no label.
575
+ - `pulse create <collection>` says `linked Marketing to <org>/.rness`, not
576
+ `Agent Pulse`.
577
+
568
578
  ## 0.17.0 — a collection on its own GitHub Project
569
579
 
570
580
  - `rness pulse create <collection>` gives a collection of `.rness/` a
package/dist/bin/rness.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  findDelegate,
7
7
  reportError,
8
8
  run
9
- } from "../chunk-X52SHBRY.js";
9
+ } from "../chunk-GAZDKEOH.js";
10
10
 
11
11
  // src/bin/rness.ts
12
12
  import { pathToFileURL } from "url";
@@ -508,7 +508,7 @@ function parseRepoSpec(spec, org, host) {
508
508
  }
509
509
 
510
510
  // src/version.ts
511
- var VERSION = "0.17.0";
511
+ var VERSION = "0.17.1";
512
512
 
513
513
  // src/core/pm.ts
514
514
  import { execFile as execFile2 } from "child_process";
@@ -1642,7 +1642,9 @@ function layoutOf(tabs, own) {
1642
1642
  ...want.map((w) => w.values[f.name]).filter((v) => typeof v === "string")
1643
1643
  ]) : []
1644
1644
  })),
1645
- labels: once(want.flatMap((w) => [...w.labels, ...w.unlabels]))
1645
+ // Made only when a document carries it: a directory with no card is no
1646
+ // label, though one carrying it once is taken off (`unlabels`).
1647
+ labels: once(want.flatMap((w) => w.labels))
1646
1648
  };
1647
1649
  }
1648
1650
  var sessionsOf2 = (row) => row.sessions?.map((e) => e.agent === void 0 ? e.id : `${e.agent} \xB7 ${e.id}`).join(", ") ?? null;
@@ -8695,7 +8697,7 @@ var eachAdded = (ui, added) => {
8695
8697
  if (a.startsWith("renamed ")) ui.line("renamed", a.slice("renamed ".length));
8696
8698
  else ui.line("added", a);
8697
8699
  };
8698
- var createdByKind = (ui, added) => {
8700
+ var createdByKind = (ui, added, project) => {
8699
8701
  for (const kind of ["field", "option", "view"]) {
8700
8702
  const names = added.filter((a) => a.startsWith(`${kind} `)).map((a) => a.slice(kind.length + 1));
8701
8703
  if (names.length > 0) ui.line("created", `${kind}s ${names.join(", ")}`);
@@ -8703,9 +8705,13 @@ var createdByKind = (ui, added) => {
8703
8705
  for (const a of added) {
8704
8706
  if (a.startsWith("label ")) ui.line("created", a);
8705
8707
  else if (a.startsWith("link "))
8706
- ui.line("linked", `Agent Pulse to ${a.slice("link ".length)}`);
8708
+ ui.line("linked", `${project} to ${a.slice("link ".length)}`);
8707
8709
  }
8708
8710
  };
8711
+ async function working(ui, doing, count3, work) {
8712
+ if (count3 === 0) return work();
8713
+ await ui.step({ doing, quiet: true }, work, () => null);
8714
+ }
8709
8715
  async function filesOf2(rnessDir) {
8710
8716
  const files = /* @__PURE__ */ new Set();
8711
8717
  const walk = async (rel) => {
@@ -8761,7 +8767,11 @@ function sayDone(ui, org, documents2, steps, writes, adopted, on) {
8761
8767
  async function syncBoard(c, board, ui, sayLayout, scope) {
8762
8768
  await fromGithub(c.provider.checkIssues(c.org));
8763
8769
  const { want } = scope;
8764
- sayLayout(ui, await fromGithub(c.provider.ensureLayout(board, scope.layout)));
8770
+ sayLayout(
8771
+ ui,
8772
+ await fromGithub(c.provider.ensureLayout(board, scope.layout)),
8773
+ scope.label
8774
+ );
8765
8775
  const have = await fromGithub(c.provider.items(board));
8766
8776
  const record = await openedFile(c.rnessDir);
8767
8777
  const all = await readOpened(record);
@@ -8781,17 +8791,24 @@ async function syncBoard(c, board, ui, sayLayout, scope) {
8781
8791
  const created = /* @__PURE__ */ new Map();
8782
8792
  const closed = /* @__PURE__ */ new Set();
8783
8793
  try {
8784
- for (const step2 of steps) {
8785
- const p = await fromGithub(c.provider.apply(board, step2));
8786
- if (p !== null && (step2.kind === "create" || step2.kind === "convert"))
8787
- placed.set(step2.want.path, p);
8788
- if (p?.adopted === true) adopted++;
8789
- else if (p !== null && step2.kind === "create")
8790
- created.set(step2.want.path, p);
8791
- if (step2.kind === "close" || step2.kind === "archive")
8792
- closed.add(step2.id);
8793
- if (step2.kind !== "unchanged") made++;
8794
- }
8794
+ await working(
8795
+ ui,
8796
+ `writing ${plural(changes)} on ${scope.label}`,
8797
+ changes,
8798
+ async () => {
8799
+ for (const step2 of steps) {
8800
+ const p = await fromGithub(c.provider.apply(board, step2));
8801
+ if (p !== null && (step2.kind === "create" || step2.kind === "convert"))
8802
+ placed.set(step2.want.path, p);
8803
+ if (p?.adopted === true) adopted++;
8804
+ else if (p !== null && step2.kind === "create")
8805
+ created.set(step2.want.path, p);
8806
+ if (step2.kind === "close" || step2.kind === "archive")
8807
+ closed.add(step2.id);
8808
+ if (step2.kind !== "unchanged") made++;
8809
+ }
8810
+ }
8811
+ );
8795
8812
  } finally {
8796
8813
  await writeOpened(
8797
8814
  record,
@@ -8817,10 +8834,17 @@ async function syncBoard(c, board, ui, sayLayout, scope) {
8817
8834
  })
8818
8835
  );
8819
8836
  writes = planBodies(bodies, issued);
8820
- for (const step2 of writes) {
8821
- await fromGithub(c.provider.apply(board, step2));
8822
- made++;
8823
- }
8837
+ await working(
8838
+ ui,
8839
+ `writing ${plural(writes.length)} bodies on ${scope.label}`,
8840
+ writes.length,
8841
+ async () => {
8842
+ for (const step2 of writes) {
8843
+ await fromGithub(c.provider.apply(board, step2));
8844
+ made++;
8845
+ }
8846
+ }
8847
+ );
8824
8848
  } catch (e) {
8825
8849
  if (!(e instanceof RateLimitError)) throw e;
8826
8850
  const total = changes + writes.length;
@@ -9555,4 +9579,4 @@ export {
9555
9579
  OWN_COMMANDS,
9556
9580
  catchUp
9557
9581
  };
9558
- //# sourceMappingURL=chunk-X52SHBRY.js.map
9582
+ //# sourceMappingURL=chunk-GAZDKEOH.js.map