pi-fabric 0.96.2 → 0.96.3

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/dist/index.js CHANGED
@@ -4641,19 +4641,19 @@ var createDashboardSnapshot = (state, events, context, activityRuns, cache, immu
4641
4641
  // src/ui/widget.ts
4642
4642
  import { truncateToWidth as truncateToWidth3, visibleWidth as visibleWidth2 } from "@earendil-works/pi-tui";
4643
4643
  var statusGlyph = (status) => {
4644
- if (status === "completed" || status === "done") return "\u2713";
4644
+ if (status === "completed" || status === "done" || status === "exited") return "\u2713";
4645
4645
  if (status === "failed" || status === "timed_out") return "\u2717";
4646
4646
  if (status === "blocked") return "!";
4647
- if (status === "stopped" || status === "cancelled") return "\u25A0";
4647
+ if (status === "stopped" || status === "cancelled" || status === "killed") return "\u25A0";
4648
4648
  if (status === "queued" || status === "pending" || status === "ready") return "\u25CB";
4649
4649
  if (status === "idle" || status === "state") return "\xB7";
4650
4650
  return spinnerFrame();
4651
4651
  };
4652
4652
  var colorStatus = (theme, status, value) => {
4653
- if (status === "completed" || status === "done") return theme.fg("success", value);
4653
+ if (status === "completed" || status === "done" || status === "exited") return theme.fg("success", value);
4654
4654
  if (status === "failed" || status === "timed_out") return theme.fg("error", value);
4655
- if (status === "blocked") return theme.fg("warning", value);
4656
- if (status === "running" || status === "in_progress") return theme.fg("accent", value);
4655
+ if (status === "blocked" || status === "stopping") return theme.fg("warning", value);
4656
+ if (status === "running" || status === "in_progress" || status === "spilled") return theme.fg("accent", value);
4657
4657
  return theme.fg("dim", value);
4658
4658
  };
4659
4659
  var phaseProgress = (run, phaseId) => {
@@ -4806,8 +4806,12 @@ var FabricWidget = class {
4806
4806
  const lines = [hasActiveConversations ? `${taskHeader} \xB7 ${this.theme.fg("dim", FABRIC_CONVERSATION_HINT)}` : taskHeader];
4807
4807
  for (const job of [...liveShells, ...recentShells].slice(0, 3)) {
4808
4808
  const elapsed2 = formatDuration((job.finishedAt ?? snapshot.now) - job.startedAt) || "0s";
4809
- const status = job.stopping ? "stopping" : job.monitor && !job.finishedAt ? `monitor:${job.monitor.delivery}` : job.status;
4810
- lines.push(this.theme.fg("dim", ` ${job.id.slice(0, 8)} ${status} \xB7 ${elapsed2} \xB7 ${safeText(job.description ?? job.command)}`));
4809
+ const status = job.stopping ? "stopping" : job.status;
4810
+ const label = job.monitor && job.finishedAt === void 0 && !job.stopping ? `monitor:${job.monitor.delivery}` : status;
4811
+ const glyph2 = colorStatus(this.theme, status, statusGlyph(status));
4812
+ lines.push(
4813
+ ` ${glyph2} ${this.theme.fg("muted", job.id.slice(0, 8))} ${this.theme.fg("muted", label)}${this.theme.fg("dim", ` \xB7 ${elapsed2} \xB7 `)}${this.theme.fg("muted", safeText(job.description ?? job.command))}`
4814
+ );
4811
4815
  }
4812
4816
  if (liveShells.length + recentShells.length > 3) lines.push(this.theme.fg("dim", ` +${liveShells.length + recentShells.length - 3} more shell tasks`));
4813
4817
  lines.push(