@mutmutco/cli 3.120.0 → 3.122.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 +22 -19
  2. package/package.json +1 -1
package/dist/main.cjs CHANGED
@@ -10004,6 +10004,12 @@ var MANAGED_GITIGNORE_LINES = [
10004
10004
  // thing blocking the cleanup that gate's own worktree needs. Org-universal: every repo runs the same
10005
10005
  // gate, so this belongs in the managed block rather than in one repo's own ignores.
10006
10006
  ".jerv/",
10007
+ // #4856: the JervCode (pi) host writes its loop journal to `.pi/loops/` in whatever repo it runs in —
10008
+ // the same runtime-state class as `.jerv/` and `.codex/` above, and the one active surface missing from
10009
+ // this list. Left un-ignored it is permanent `?? .pi/` noise that refuses a release clean-tree gate
10010
+ // (measured on the v3.120.0 Hub train), with no legal resolution: committing another host's runtime
10011
+ // state is not an option, so the operator's only move was to park the directory outside the repo.
10012
+ ".pi/",
10007
10013
  // #2321 doctrine: the canonical worktree home is the SIBLING `../mmi-worktrees/<RepoName>/<branch>` (outside the tree,
10008
10014
  // via `mmi-cli worktree create`), so a repo-local `.worktrees/` is NOT un-ignored org-wide — `mmi-cli
10009
10015
  // doctor` flags one explicitly instead (buildRepoLocalWorktreeCheck) rather than baking the fallback path
@@ -15845,10 +15851,10 @@ var rollout_plan_default = {
15845
15851
  note: "The v4.0.0 stamp happens at cut time (D6e #4463); until then the candidate is the origin/development head artifacts (built cli/dist + npm pack), identity proven by dist content hash (D6a)."
15846
15852
  },
15847
15853
  baseline: {
15848
- version: "3.120.0",
15849
- tag: "v3.120.0",
15850
- commit: "5e8fd4eaab15",
15851
- npm: "@mutmutco/cli@3.120.0"
15854
+ version: "3.122.0",
15855
+ tag: "v3.122.0",
15856
+ commit: "d145ba2bac34",
15857
+ npm: "@mutmutco/cli@3.122.0"
15852
15858
  },
15853
15859
  exitCriterion: "fleet-n-of-n",
15854
15860
  hubOnlyShortcut: "forbidden",
@@ -15865,14 +15871,14 @@ var rollout_plan_default = {
15865
15871
  repo: "mutmutco/mmi-hub",
15866
15872
  role: "canary",
15867
15873
  schedule: "train",
15868
- v3Target: "v3.120.0"
15874
+ v3Target: "v3.122.0"
15869
15875
  }
15870
15876
  ],
15871
15877
  rollbackTrigger: "Any red inside the post-cut soak window: `devops train gate` FAIL attributable to the v4 doors, Hub endpoint health probe failure, a v3 client refused while the compat window must still admit it (SUPPORTED_MINOR_WINDOW=2, MIN_CLIENT_VERSION 0.0.0 \u2014 D6a), or npm consumer install/doctor failure on the v4 dist.",
15872
15878
  rollback: {
15873
15879
  independent: true,
15874
- mechanism: "npm dist-tag latest -> 3.120.0 and redeploy the Hub Lambda from tag v3.120.0 (5e8fd4eaab15); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
15875
- v3Target: "v3.120.0 (@mutmutco/cli@3.120.0, tag commit 5e8fd4eaab15 \u2014 the preserved latest-v3 distribution, D6b)"
15880
+ mechanism: "npm dist-tag latest -> 3.122.0 and redeploy the Hub Lambda from tag v3.122.0 (d145ba2bac34); installed clients repair via `mmi-cli doctor`. No other cohort is touched.",
15881
+ v3Target: "v3.122.0 (@mutmutco/cli@3.122.0, tag commit d145ba2bac34 \u2014 the preserved latest-v3 distribution, D6b)"
15876
15882
  }
15877
15883
  },
15878
15884
  {
@@ -22831,13 +22837,9 @@ function partitionBoardItems(items, viewer, currentRepo, writableRepos) {
22831
22837
  sortBuckets(groups.secondary);
22832
22838
  return groups;
22833
22839
  }
22834
- function detailCandidates(report) {
22835
- return [
22836
- ...report.primary.userOwned,
22837
- ...report.primary.claimable,
22838
- ...report.secondary.userOwned,
22839
- ...report.secondary.claimable
22840
- ].filter((item) => item.contentType === "Issue");
22840
+ function detailCandidates(report, options = {}) {
22841
+ const scopes = [report.primary, report.secondary];
22842
+ return scopes.flatMap((scope) => options.all ? [...scope.userOwned, ...scope.claimable, ...scope.taken, ...scope.unownedInFlight] : [...scope.userOwned, ...scope.claimable]).filter((item) => item.contentType === "Issue");
22841
22843
  }
22842
22844
  function boardNotFoundError(ref, board, opts = {}) {
22843
22845
  const verb = opts.verb ?? "is not on";
@@ -23133,8 +23135,8 @@ async function readBoard(options, deps = {}) {
23133
23135
  freshness,
23134
23136
  ...sourceReason ? { sourceReason } : {}
23135
23137
  };
23136
- if (options.includeBundleDetails) {
23137
- await attachBundleDetails(report, client, options.allowPartial ?? false);
23138
+ if (options.includeBundleDetails || options.includeAllBodies) {
23139
+ await attachBundleDetails(report, client, options.allowPartial ?? false, { all: options.includeAllBodies });
23138
23140
  }
23139
23141
  for (const scope of ["primary", "secondary"]) {
23140
23142
  const filtered = await filterDependencyBlockedClaimables(report[scope].claimable, client, {
@@ -23761,8 +23763,8 @@ function nodeToItem(node, cfg) {
23761
23763
  function isSupportedContent(content) {
23762
23764
  return Boolean(content && (content.__typename === "Issue" || content.__typename === "PullRequest"));
23763
23765
  }
23764
- async function attachBundleDetails(report, client, allowPartial) {
23765
- const candidates = detailCandidates(report);
23766
+ async function attachBundleDetails(report, client, allowPartial, options = {}) {
23767
+ const candidates = detailCandidates(report, options);
23766
23768
  if (candidates.length === 0) return;
23767
23769
  let next = 0;
23768
23770
  const worker = async () => {
@@ -32389,6 +32391,7 @@ function registerBoardCommands(program3) {
32389
32391
  config: await loadConfigForRepo(o.repo),
32390
32392
  repo: o.repo,
32391
32393
  includeBundleDetails: o.bundleDetails,
32394
+ includeAllBodies: o.bodies,
32392
32395
  allowPartial: o.allowPartial,
32393
32396
  live: o.live
32394
32397
  });
@@ -32401,7 +32404,7 @@ function registerBoardCommands(program3) {
32401
32404
  return alreadyClaimed ? `Check ${ref}: claimed and In Progress, no live contest - claim would renew the lease (nothing written)` : `Check ${ref}: free - claim would proceed (nothing written)`;
32402
32405
  }
32403
32406
  const board = program3.command("board").description("read, claim, show, and move Project v2 work items for the current repo");
32404
- board.command("read", { isDefault: true }).description("read the board and print user-owned, claimable, and taken items").option("--json", "machine-readable output").option("--repo <owner/repo>", "current repo (defaults to git origin)").option("--bundle-details", "fetch body/comments only for user-owned and claimable issues").option("--allow-partial", "return partial board results when later page/detail reads fail").option("--live", "bypass the projection and read the authoritative GitHub Project v2 board").addHelpText("after", "\nBy default, read uses the explicitly-stale Hub projection and prints its watermark. --live is authoritative.\n--allow-partial applies to the live paginated path and detail reads; the projection row itself is atomic.\n").action((o) => runBoardRead(o));
32407
+ board.command("read", { isDefault: true }).description("read the board and print user-owned, claimable, and taken items").option("--json", "machine-readable output").option("--repo <owner/repo>", "current repo (defaults to git origin)").option("--bundle-details", "fetch body/comments only for user-owned and claimable issues").option("--bodies", "fetch body/comments for EVERY scoped row, including taken and unowned in-flight ones \u2014 for consumers that scope by Status rather than ownership (#4861); implies --bundle-details and costs one extra read per row").option("--allow-partial", "return partial board results when later page/detail reads fail").option("--live", "bypass the projection and read the authoritative GitHub Project v2 board").addHelpText("after", "\nBy default, read uses the explicitly-stale Hub projection and prints its watermark. --live is authoritative.\n--allow-partial applies to the live paginated path and detail reads; the projection row itself is atomic.\n").action((o) => runBoardRead(o));
32405
32408
  withExamples(mutating(
32406
32409
  board.command("claim <issues...>").description("claim issues: assign them and move their Project v2 Status to In Progress \u2014 idempotent, so an item already yours and In Progress succeeds unchanged (one or more refs)").option("--json", "machine-readable output").option("--repo <owner/repo>", "current repo for local issue numbers (defaults to git origin)").option("--for <login>", "assign to this login instead of @me \u2014 agent claims on behalf of the master").option("--force", "take an item already claimed by another lane that shows live evidence of active work (#3727)").option("--check", "read-only: run every claim gate and report the verdict, writing nothing \u2014 exits 1 with the same refusal a real claim would raise (#4511)").option("--allow-partial", "return success JSON if assignment succeeds but the status move fails"),
32407
32410
  (_opts, args) => ({ command: "board claim", issues: args[0] ?? [] })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/cli",
3
- "version": "3.120.0",
3
+ "version": "3.122.0",
4
4
  "description": "MMI Future CLI — the org dev toolbox and shared cross-IDE engine for every registry-declared MMI coding surface.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",