@mutmutco/cli 3.60.0 → 3.62.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.
Files changed (2) hide show
  1. package/dist/main.cjs +18 -10
  2. package/package.json +1 -1
package/dist/main.cjs CHANGED
@@ -8138,8 +8138,8 @@ function renderBoardItem(item) {
8138
8138
  }
8139
8139
  function renderBoardReport(report) {
8140
8140
  const lines = [`Board \xB7 ${report.project.title} \xB7 @${report.viewer}`];
8141
- renderScope(lines, "PRIMARY", report.repo, report.primary);
8142
- renderScope(lines, "SECONDARY", "Other repos on this project", report.secondary);
8141
+ renderScope(lines, "PRIMARY", report.repo, report.primary, report.viewer);
8142
+ renderScope(lines, "SECONDARY", "Other repos on this project", report.secondary, report.viewer);
8143
8143
  if (report.warnings.length) {
8144
8144
  lines.push("", "Warnings");
8145
8145
  for (const warning of report.warnings) lines.push(` ${warning}`);
@@ -8758,17 +8758,17 @@ async function attachBundleDetails(report, client, allowPartial) {
8758
8758
  };
8759
8759
  await Promise.all(Array.from({ length: Math.min(WRITE_PROBE_CONCURRENCY, candidates.length) }, () => worker()));
8760
8760
  }
8761
- function renderScope(lines, label, title, buckets) {
8761
+ function renderScope(lines, label, title, buckets, viewer) {
8762
8762
  if (!hasItems(buckets)) return;
8763
8763
  lines.push("", `${label} \xB7 ${title}`);
8764
- renderOwned(lines, buckets.userOwned);
8764
+ renderOwned(lines, buckets.userOwned, viewer);
8765
8765
  renderClaimable(lines, buckets.claimable);
8766
8766
  renderUnowned(lines, buckets.unownedInFlight);
8767
8767
  renderTaken(lines, buckets.taken);
8768
8768
  }
8769
- function renderOwned(lines, items) {
8769
+ function renderOwned(lines, items, viewer) {
8770
8770
  if (!items.length) return;
8771
- lines.push("Yours");
8771
+ lines.push(`Assigned to @${viewer}`);
8772
8772
  for (const status of ["Todo", "In Progress", "In Review"]) {
8773
8773
  const group = items.filter((item) => item.status === status);
8774
8774
  if (!group.length) continue;
@@ -8970,7 +8970,9 @@ function boardSliceCacheStale(cached, now, ttlMs = BOARD_SLICE_CACHE_TTL_MS) {
8970
8970
  // src/board-slice.ts
8971
8971
  var SESSION_START_BOARD_TIMEOUT_MS = 3e3;
8972
8972
  var BOARD_SLICE_REFRESH_TIMEOUT_MS = 3e4;
8973
- var BOARD_SLICE_FRAMING = "BOARD SLICE \u2014 board Status is authoritative for work lifecycle.";
8973
+ function boardSliceFraming(viewer) {
8974
+ return `BOARD SLICE \u2014 board Status is authoritative for work lifecycle. Assigned to @${viewer}, the human you act for \u2014 not to you; another agent may already be on one.`;
8975
+ }
8974
8976
  var BOARD_SLICE_EMPTY = "Board: nothing assigned or claimable right now \u2014 `mmi-cli board read` (or `/mmi`) for the full board.";
8975
8977
  var BOARD_SLICE_PENDING = "Board: loading your slice in the background \u2014 run `/mmi` now; it renders here next session.";
8976
8978
  var BOARD_SLICE_MAX_LINES = 5;
@@ -9017,7 +9019,7 @@ function renderBoardSlice(report, maxLines = BOARD_SLICE_MAX_LINES) {
9017
9019
  lines.push(sliceItemLine("claimable", item));
9018
9020
  }
9019
9021
  if (!lines.length) return null;
9020
- return [BOARD_SLICE_FRAMING, ...lines].join("\n");
9022
+ return [boardSliceFraming(report.viewer), ...lines].join("\n");
9021
9023
  }
9022
9024
  function pickNextItem(report) {
9023
9025
  const owned = sortOwned([...report.primary.userOwned, ...report.secondary.userOwned]).filter(
@@ -9037,7 +9039,7 @@ function pickNextItem(report) {
9037
9039
  function nextBannerLine(next) {
9038
9040
  if (!next) return null;
9039
9041
  if (next.kind === "assigned") {
9040
- return `NEXT \u2192 continue ${next.ref} (${next.status}): ${next.title}`;
9042
+ return `NEXT \u2192 pick up ${next.ref} (${next.status}): ${next.title} \xB7 check no other agent is on it first`;
9041
9043
  }
9042
9044
  return `NEXT \u2192 claim ${next.ref}: ${next.title} \xB7 mmi-cli board claim ${next.ref}`;
9043
9045
  }
@@ -21685,7 +21687,13 @@ var import_node_path25 = require("node:path");
21685
21687
  var OWNERS_FILE = "worktree-owners.json";
21686
21688
  var EVENTS_FILE = "worktree-events.jsonl";
21687
21689
  var WORKTREE_ACTIVITY_WINDOW_MS = 30 * 6e4;
21688
- var SESSION_ID_ENV_VARS = ["MMI_SESSION_ID", "CLAUDE_SESSION_ID", "CODEX_SESSION_ID", "CURSOR_SESSION_ID"];
21690
+ var SESSION_ID_ENV_VARS = [
21691
+ "MMI_SESSION_ID",
21692
+ "CLAUDE_SESSION_ID",
21693
+ "CLAUDE_CODE_SESSION_ID",
21694
+ "CODEX_SESSION_ID",
21695
+ "CURSOR_SESSION_ID"
21696
+ ];
21689
21697
  function readSessionId(env) {
21690
21698
  for (const key of SESSION_ID_ENV_VARS) {
21691
21699
  const value = env[key]?.trim();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "3.60.0",
3
+ "version": "3.62.0",
4
4
  "description": "MMI Future CLI — the org dev toolbox (board, registry, keyless secrets, release train, bootstrap, doctor) and the cross-IDE engine the plugin's session-start hook drives.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",